为什么单个设备上的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

相关内容