Gnome 調整工具鍵盤佈局選項 - 僅設定為藍牙鍵盤?

Gnome 調整工具鍵盤佈局選項 - 僅設定為藍牙鍵盤?

當我使用煩人的外部 Apple Magic 鍵盤時,我在 Tweak Tools 中啟用了這個有用的設定:

在此輸入影像描述

這個設定使我看來鍵盤功能正常(超級鍵位於控制鍵的右側)。

但是,調整工具中的此設定也會影響我的筆記型電腦自己的鍵盤映射。我可以以某種方式僅針對這個煩人的外部蘋果魔術鍵盤進行此設定嗎?

答案1

可以使用xkbcomp,詳細過程有描述這裡。您必須找到要重新對應的按鍵的程式碼。同一OP中的其他答案可能有用。

xkeycaps可能會派上用場。

有關的>

  1. 如何重新映射某些按鍵或裝置?
  2. https://dev.to/0xbf/remap-keys-in-the-keyboard-in-ubuntu-5a36
  3. http://www.fascinatingcaptain.com/projects/remap-keyboard-keys-for-ubuntu/
  4. (巴勃羅·比安奇評論)https://superuser.com/questions/277990/how-do-i-swap-alt-and-windows-keys-with-xmodmap
  5. (巴勃羅·比安奇評論)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

然後你就完成了。

相關內容