我使用setxkbmap
将键盘布局设置为自定义布局。它是从“自动启动应用程序”(~/.config/autostart
)开始的,并且运行良好。
但是当我插入我的Jabra耳机时,它会被重置为默认的美国QWERTY耳机。我想阻止这一切。
我看到另一个帖子
但最好的答案是,OP只是插入另一个新键盘;我认为这是一个错误的假设,这肯定不是我的情况。
据我所知,这是一个udev
问题,也是一个相当严重的错误。Ubuntu 18.04
使用udevadm monitor
时,当Jabra耳机插入时,我会看到以下几行:
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent
KERNEL[514.356707] add /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2 (usb)
KERNEL[514.360571] add /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.0 (usb)
KERNEL[514.384326] add /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.0/sound/card1 (sound)
KERNEL[514.384427] add /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.0/sound/card1/pcmC1D0p (sound)
KERNEL[514.384485] add /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.0/sound/card1/pcmC1D0c (sound)
KERNEL[514.384542] add /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.0/sound/card1/controlC1 (sound)
KERNEL[514.384584] bind /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.0 (usb)
KERNEL[514.384616] add /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.1 (usb)
KERNEL[514.384645] bind /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.1 (usb)
KERNEL[514.384675] add /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.2 (usb)
KERNEL[514.384701] bind /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.2 (usb)
KERNEL[514.384730] add /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.3 (usb)
KERNEL[514.387245] add /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.3/0003:0B0E:0305.000B (hid)
KERNEL[514.387575] add /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.3/0003:0B0E:0305.000B/input/input18 (input)
KERNEL[514.444127] add /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.3/0003:0B0E:0305.000B/input/input18/event6 (input)
KERNEL[514.444169] add /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.3/0003:0B0E:0305.000B/input/input18/input18::mute (leds)
KERNEL[514.444318] add /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.3/usbmisc/hiddev0 (usbmisc)
KERNEL[514.444375] add /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.3/0003:0B0E:0305.000B/hidraw/hidraw1 (hidraw)
KERNEL[514.444438] bind /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.3/0003:0B0E:0305.000B (hid)
KERNEL[514.444473] bind /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.3 (usb)
KERNEL[514.444510] bind /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2 (usb)
UDEV [514.967946] add /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2 (usb)
UDEV [514.970785] add /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.0 (usb)
UDEV [514.971920] add /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.1 (usb)
UDEV [514.972737] add /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.2 (usb)
UDEV [514.973022] add /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.3 (usb)
UDEV [514.973854] add /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.0/sound/card1 (sound)
UDEV [514.974449] bind /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.1 (usb)
UDEV [514.975643] bind /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.2 (usb)
UDEV [514.976113] add /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.3/0003:0B0E:0305.000B (hid)
UDEV [514.976909] add /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.3/usbmisc/hiddev0 (usbmisc)
UDEV [514.979273] add /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.3/0003:0B0E:0305.000B/hidraw/hidraw1 (hidraw)
UDEV [514.980161] add /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.0/sound/card1/pcmC1D0c (sound)
UDEV [514.980666] add /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.3/0003:0B0E:0305.000B/input/input18 (input)
UDEV [514.980736] add /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.0/sound/card1/pcmC1D0p (sound)
KERNEL[514.980866] change /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.0/sound/card1 (sound)
UDEV [514.983803] add /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.3/0003:0B0E:0305.000B/input/input18/input18::mute (leds)
UDEV [515.017334] add /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.3/0003:0B0E:0305.000B/input/input18/event6 (input)
UDEV [515.019498] bind /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.3/0003:0B0E:0305.000B (hid)
UDEV [515.020828] bind /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.3 (usb)
UDEV [515.790142] add /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.0/sound/card1/controlC1 (sound)
UDEV [515.792199] bind /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.0 (usb)
UDEV [515.794039] bind /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2 (usb)
UDEV [515.796084] change /devices/pci0000:00/0000:00:14.0/usb3/3-3/3-3.2/3-3.2:1.0/sound/card1 (sound)
在此之后,使用xinput list
,我看到:
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ HP HP USB 1000dpi Laser Mouse id=8 [slave pointer (2)]
⎜ ↳ Chicony HP Business Slim Keyboard Consumer Control id=13 [slave pointer (2)]
⎜ ↳ PS/2 Generic Mouse id=18 [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)]
↳ Chicony HP Business Slim Keyboard id=10 [slave keyboard (3)]
↳ Chicony HP Business Slim Keyboard System Control id=11 [slave keyboard (3)]
↳ Chicony HP Business Slim Keyboard id=12 [slave keyboard (3)]
↳ Integrated_Webcam_FHD: Integrat id=14 [slave keyboard (3)]
↳ Integrated_Webcam_FHD: Integrat id=15 [slave keyboard (3)]
↳ Dell WMI hotkeys id=16 [slave keyboard (3)]
↳ AT Translated Set 2 keyboard id=17 [slave keyboard (3)]
↳ Chicony HP Business Slim Keyboard Consumer Control id=19 [slave keyboard (3)]
↳ GN Netcom A/S Jabra EVOLVE LINK MS id=9 [slave keyboard (3)]
Chicony HP Business Slim Keyboard
是我想设置布局的USB键盘,而GN Netcom A/S Jabra EVOLVE LINK MS
是耳机。
发布于 2021-04-13 07:54:58
你的Jabra耳机显然包括一些按钮,这些按钮作为“键盘一样”的输入设备呈现给操作系统,而且显然,只要新的键盘设备被插入,桌面环境就会重新设置X11键盘布局。
您的setxkbmap
设置将不为桌面环境所知,因此桌面环境和setxkbmap
将以相互争斗告终。
首先,您应该使用桌面环境的配置工具来正确设置键盘,而不是使用setxkbmap
。不幸的是,Gnome桌面似乎只提供了一个简化的键盘布局选择器GUI:但是您仍然应该能够将设置直接放到/etc/default/keyboard
上。有关更多详细信息,请参阅man 5 keyboard
。
发布于 2021-12-14 15:38:59
我用Gnome的对话框在耳机连接时设置键盘布局来修正这个问题。不知怎么的,当它们连接起来的时候,Gnome只是认为根本没有布局设置。
一旦设置-它保持我的布局,无论耳机是否连接。
https://unix.stackexchange.com/questions/644828
复制相似问题