単一のデバイスのsetxkbmapが他のデバイスも変更するのはなぜですか?

単一のデバイスのsetxkbmapが他のデバイスも変更するのはなぜですか?

外部キーボードが接続されているThinkpadノートブックでUbuntuを実行しています。ノートブックキーボードはGBレイアウトを採用し、外部キーボードはUSレイアウトを採用しています。

まず、接続機器のリストを出力します。 (関連のないデバイスは一部削除しました。)

➜  xinput -list 
⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Synaptics TM3053-004                      id=20   [slave  pointer  (2)]
⎜   ↳ TPPS/2 IBM TrackPoint                     id=21   [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)]
    ↳ Sleep Button                              id=8    [slave  keyboard (3)]
    ↳ Integrated Camera: Integrated C           id=9    [slave  keyboard (3)]
    ↳ DasKeyboard                               id=12   [slave  keyboard (3)]
    ↳ DasKeyboard                               id=13   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=18   [slave  keyboard (3)]
    ↳ ThinkPad Extra Buttons                    id=19   [slave  keyboard (3)]

したがって、ノートブックはデバイスID 18に表示され、キーボードはデバイスID 12と13に表示されます。次のクエリは、両方のキーボードがGBに設定されていることを示しています。

➜  setxkbmap -device 12 -query                                     
rules:      evdev
model:      pc105
layout:     gb,gb
variant:    ,
➜  setxkbmap -device 18 -query
rules:      evdev
model:      pc105
layout:     gb,gb
variant:    ,

これで、デバイスID 12にレイアウトを設定しています。

➜  setxkbmap -device 12 -layout us   

しかし、これがデバイス18にも設定されていることがわかります。

➜  setxkbmap -device 12 -query                                     
rules:      evdev
model:      pc105
layout:     us
➜  setxkbmap -device 18 -query    
rules:      evdev
model:      pc105
layout:     us

ベストアンサー1

おすすめ記事