当我可以推荐时,这是我的第三个答案actkbd
... :)
因此,如果要将第二个键盘的所有键配置为运行不键入字母的命令,则可以使用actkbd
... :)
安装后,actkbd
我们需要找到用于从键盘接收事件的设备文件:
pbm@tauri ~ $ cat /proc/bus/input/devices
[cut]
I: Bus=0003 Vendor=046d Product=c31c Version=0110
N: Name="Logitech USB Keyboard"
P: Phys=usb-0000:00:1a.0-1.1/input0
S: Sysfs=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.1/1-1.1:1.0/input/input7
U: Uniq=
H: Handlers=sysrq kbd event5
B: PROP=0
B: EV=120013
B: KEY=1000000000007 ff9f207ac14057ff febeffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=1f
I: Bus=0003 Vendor=046d Product=c31c Version=0110
N: Name="Logitech USB Keyboard"
P: Phys=usb-0000:00:1a.0-1.1/input1
S: Sysfs=/devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.1/1-1.1:1.1/input/input8
U: Uniq=
H: Handlers=kbd event6
B: PROP=0
B: EV=1b
B: KEY=2010000 397ad801d001 1e000000000000 0
B: ABS=100000000
B: MSC=10
[cut]
在此列表中,您应该找到键盘,并检查其处理程序。使用sudo actkbd -s -d /dev/input/HANDLER_NAME
检查,如果该处理程序发送事件。如果您运行此命令并按键盘上的键(检查要绑定到命令的键),则应获得以下内容:
pbm@tauri ~ $ sudo actkbd -s -d /dev/input/event5
Keys: 57
Keys: 35
如果您有键码,我们可以创建actkbd
配置文件:
pbm@tauri ~ $ sudo nano /etc/actkbd.conf
30:::sudo -u pbm DISPLAY=:0 amarok
//30 is keycode for letter a
保存该文件时,我们应该测试配置是否有效:
pbm@tauri ~ $ sudo actkbd -d /dev/input/event5 -D
当您按下配置文件中的键时,将从配置文件的最后一列开始命令。
我认为有一种方法可以禁止向应用程序发送密钥,但是我找不到它-签出 README文件。
actkbd
您可以关闭X中的键盘,而不必尝试使用禁用它。
pbm@tauri ~ $ xinput list
[cut]
↳ Logitech USB Keyboard id=12 [slave keyboard (3)]
↳ Logitech USB Keyboard id=11 [slave keyboard (3)]
pbm@tauri ~ $ xinput set-prop 11 "Device Enabled" 0
pbm@tauri ~ $ xinput set-prop 12 "Device Enabled" 0
它应该做的工作... :)有关actkbd
查看此答案的更多信息。
使用actkbd
(可能还有一些脚本),您还可以配置键盘以使用俄语字母将模式从命令模式更改为输入模式。对于此阅读Ulrich Schwarz's
答案。