![Gnome Tweak Tools キーボード レイアウト オプション - Bluetooth キーボードのみに設定しますか?](https://rvso.com/image/1071706/Gnome%20Tweak%20Tools%20%E3%82%AD%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%89%20%E3%83%AC%E3%82%A4%E3%82%A2%E3%82%A6%E3%83%88%20%E3%82%AA%E3%83%97%E3%82%B7%E3%83%A7%E3%83%B3%20-%20Bluetooth%20%E3%82%AD%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%89%E3%81%AE%E3%81%BF%E3%81%AB%E8%A8%AD%E5%AE%9A%E3%81%97%E3%81%BE%E3%81%99%E3%81%8B%3F.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
これは、全体としては、完全性に欠けるため、#!^ の回答ですが、setxkbmap を使用して、特定のキーボードにキー スワップ オプションを割り当てるだけです。
xinput
キーボードのIDを教えてくれます
wutang@shaolin:~$ 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)]
正直に言うと、私は非常に怠け者で、テストした 2 番目のキーボードを渡すために仮想を邪魔していません。さらに怠け者で、実際に 2 つのキーボードを表示するホスト (--> VM) からカット アンド ペーストするように設定していません...(s#!^ 回答)
つまり、私の出力には一意のIDを持つ2番目のキーボードがあると想像するだけです
キーボードの 1 つ (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
これで完了です。