Gnome Tweak Tools キーボード レイアウト オプション - Bluetooth キーボードのみに設定しますか?

Gnome Tweak Tools キーボード レイアウト オプション - Bluetooth キーボードのみに設定しますか?

煩わしい外付けの Apple マジック キーボードを使用するときは、Tweak Tools でこの便利な設定を有効にします。

ここに画像の説明を入力してください

この設定により、キーボードの機能は私の見解では正常になります (スーパー キーはコントロール キーの右側にあります)。

ただし、調整ツールのこの設定は、ラップトップのキーマップにも影響します。この設定を、この厄介な外付け Apple マジック キーボード専用にすることはできますか?

答え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

これは、全体としては、完全性に欠けるため、#!^ の回答ですが、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

これで完了です。

関連情報