단일 장치의 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

관련 정보