![Gnome 調整工具鍵盤佈局選項 - 僅設定為藍牙鍵盤?](https://rvso.com/image/1071706/Gnome%20%E8%AA%BF%E6%95%B4%E5%B7%A5%E5%85%B7%E9%8D%B5%E7%9B%A4%E4%BD%88%E5%B1%80%E9%81%B8%E9%A0%85%20-%20%E5%83%85%E8%A8%AD%E5%AE%9A%E7%82%BA%E8%97%8D%E7%89%99%E9%8D%B5%E7%9B%A4%EF%BC%9F.png)
答案1
可以使用xkbcomp
,詳細過程有描述這裡。您必須找到要重新對應的按鍵的程式碼。同一OP中的其他答案可能有用。
xkeycaps
可能會派上用場。
有關的>
- 如何重新映射某些按鍵或裝置?
- https://dev.to/0xbf/remap-keys-in-the-keyboard-in-ubuntu-5a36
- http://www.fascinatingcaptain.com/projects/remap-keyboard-keys-for-ubuntu/
- (巴勃羅·比安奇評論)https://superuser.com/questions/277990/how-do-i-swap-alt-and-windows-keys-with-xmodmap
- (巴勃羅·比安奇評論)https://unix.stackexchange.com/questions/86933/swap-alt-and-super
答案2
總的來說,這是 as#!^ 答案,因為它缺乏完整性,但我只是使用 setxkbmap 將鍵交換選項分配給特定鍵盤。
xinput
會給你鍵盤的ID
wutang@少林:~$ xinput
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ VirtualBox mouse integration id=9 [slave pointer (2)]
⎜ ↳ VirtualBox USB Tablet id=10 [slave pointer (2)]
⎜ ↳ ImExPS/2 Generic Explorer Mouse id=12 [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)]
↳ Sleep Button id=7 [slave keyboard (3)]
↳ Video Bus id=8 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=11 [slave keyboard (3)]
完全披露我非常懶,沒有打擾我的虛擬機來通過我測試過的第二個鍵盤,更懶的是沒有設置從主機(-->VM)剪切和粘貼,實際上確實顯示了兩個鍵盤。
所以你只需想像我的輸出中有第二個鍵盤具有唯一的 id
如果我只想更改其中一個鍵盤(AT Translated Set 2 鍵盤):
setxkbmap -device 11 -option altwin:swap_lalt_lwin
我假設這不是永久性的;如果拔掉鍵盤、登出或關閉電源,問題可能會消失。
不提供選項的 -option 標誌將刪除所有選項。
答案3
原來我的同事也有同樣的問題。經他許可,這是立即生效的解決方案:
首先運行它並滾動到有關鍵盤運行的信息cat /proc/bus/input/devices | less
I: Bus=0005 Vendor=004c Product=026c Version=0160
N: Name="Magic Keyboard with Numeric Keypad"
P: Phys=44:e5:17:96:76:24
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb3/3-10/3-10:1.0/bluetooth/hci0/hci0:256/0005:004C:026C.0007/input/input38
U: Uniq=c4:14:11:03:c2:de
H: Handlers=sysrq kbd event20 leds
B: PROP=0
B: EV=120013
B: KEY=10000 0 0 1 1007b00001007 ff9f207ac14057ff ffbeffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=1f
現在透過這種方式建構一個 id:
evdev:input:b<bus_id>v<vendor_id>p<product_id>e<version_id>-<modalias>
版本和模式並不重要。我明白了:
evdev:input:b0005v004Cp026C*
接下來創建這個文件
etc/udev/hwdb.d/60-applekeyboard.hwdb
我認為名字並不重要,但我不確定。
該文件應包含我們剛剛建立的 ID 和鍵的重新映射:
# Apple magic
evdev:input:b0005v004Cp026C*
KEYBOARD_KEY_700e2=leftmeta
KEYBOARD_KEY_700e3=leftalt
你如何找到這些名字?只需執行sudo evtest
找到您的鍵盤並按下您想要更改的鍵即可。
Event: time 1644400418.762658, type 4 (EV_MSC), code 4 (MSC_SCAN), value 700e3
Event: time 1644400418.762658, type 1 (EV_KEY), code 56 (KEY_LEFTMETA), value 1
使用該輸出來建構所需的金鑰並進行變更。
接下來, sudo 執行以下命令進行更新:
systemd-hwdb update
udevadm control --reload-rules
udevadm trigger
然後你就完成了。