Keyboard-Shortcuts
我可以從 Linux 上的第二個鍵盤啟動宏和快捷方式嗎?
我有一個小數字鍵盤,我想用它來啟動宏和快捷方式,以及我的正常鍵盤。我可以將宏和快捷方式附加到這些鍵(即,小鍵盤 1 最小化活動視窗),但我的主鍵盤小鍵盤也啟動了快捷方式。
我想要一種方法讓輔助鍵盤完全獨立執行,然後為其附加快捷方式。
這是我從中得到的輸出
xinput
。⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ LVT Recon gaming mouse id=10 [slave pointer (2)] ⎜ ↳ LVT Recon gaming mouse id=11 [slave pointer (2)] ⎜ ↳ Corsair Corsair K30A Gaming Keyboard id=13 [slave pointer (2)] ⎜ ↳ SIGMACHIP USB Keyboard id=18 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Video Bus id=7 [slave keyboard (3)] ↳ Power Button id=8 [slave keyboard (3)] ↳ Sleep Button id=9 [slave keyboard (3)] ↳ Corsair Corsair K30A Gaming Keyboard id=12 [slave keyboard (3)] ↳ Corsair Corsair K30A Gaming Keyboard id=14 [slave keyboard (3)] ↳ LVT Recon gaming mouse id=15 [slave keyboard (3)] ↳ Corsair Corsair K30A Gaming Keyboard id=16 [slave keyboard (3)] ↳ SIGMACHIP USB Keyboard id=17 [slave keyboard (3)] ↳ SIGMACHIP USB Keyboard id=19 [slave keyboard (3)]
雖然我的其他答案可能適用於大多數 Linux,即使它們已有多年曆史,但 SystemD 和 udev 實際上使事情變得更容易:
- 用於
lsusb
查找附加鍵盤的供應商和產品程式碼。(在我的例子中,它是供應商 145F,產品 0177。確保字母為大寫。)- 創建一個文件
/etc/udev/hwdb.d/90-extra-keyboard.hwdb
,內容與此類似:evdev:input:b0003v145Fp0177* KEYBOARD_KEY_7005b=stopcd
第一行標識設備:v 後面的四個字母是供應商程式碼,p 後面是產品程式碼,來自上一步。每一行都將掃描碼映射到符號名稱。要獲取掃描碼,請執行
evtest
:Event: time 1553711252.888538, -------------- SYN_REPORT ------------ Event: time 1553711257.656558, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70059 Event: time 1553711257.656558, type 1 (EV_KEY), code 79 (KEY_KP1), value 1
要找出符號名稱的用途,請查看以下行
#define KEY_…
列表/usr/include/linux/input-event-codes.h
:#define KEY_PLAYPAUSE 164 #define KEY_PREVIOUSSONG 165 #define KEY_STOPCD 166 #define KEY_RECORD 167
- 通過執行重新建構和載入內部數據庫
systemd-hwdb update; udevadm trigger
evtest
通過再次執行或在設置中分配快捷方式來驗證新設置是否有效。在應用程序中嘗試此操作時,請記住,如果您的桌面環境已經使用該快捷方式,則應用程序甚至不會看到按鍵。