3
如何分辨是哪个键盘按下了按键?
我经常在配对站中安装多个键盘。我可以使用setxkbmapwith -device <ID>来设置特定键盘的布局(使用中的IDxinput),但是通常我不清楚使用的是哪个键盘。最好避免反复尝试两个键盘,所以我想编写一个快速工具来获取有关此信息setxkbmap。我期望一个典型的用例如下: $ setxkbmap -device "$(get-keyboard-id)" -layout gb Press Enter to detect keyboard ID 哪个接口在Linux上提供此信息?理想情况下,它应该在没有X的情况下也可以工作,但这不是必须的(似乎没有很多工具可以在没有X的情况下支持此功能)。 到目前为止的发现: Linux 必须知道我要键入哪个键盘才能同时支持多个键盘的不同布局。 xinput→list.c→ list_xi2→ XIQueryDevice提供设备ID可使用的通过setxkbmap。 showkey并且xev不打印键盘ID。 xinput list-props $ID显示键盘事件的发送位置。但是,使用其他答案中的代码,似乎该设备无法打印任何内容来识别键盘。 一种几乎可行的解决方案是xinput --test <ID> &为每个键盘ID 运行并查看哪个首先返回值。这样做的问题是弄清楚哪些“键盘” 实际上是键盘: $ xinput | grep keyboard ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard …