Keyboard

執行命令的第二個鍵盤

  • May 23, 2020

在我的電腦上,我插入了兩個 USB 鍵盤。不是讓兩個鍵盤都鍵入相同的鍵,是否可以設置第二個鍵盤來執行命令而不是鍵入字母?如果這不可能,是否可以設置為至少輸入另一種語言,例如俄語?

當我可以推薦時,這是我的第三個答案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答案。

引用自:https://unix.stackexchange.com/questions/35649