를 사용하여 키보드 레이아웃을 사용자 정의 레이아웃으로 설정했습니다 setxkbmap
. "응용 프로그램 자동 실행"( )으로 실행되고 ~/.config/autostart
제대로 작동합니다.
하지만 Jabra 헤드셋을 연결하면 기본 US QWERTY 헤드셋으로 재설정됩니다. 나는 이것을 멈추고 싶다.
다른 글을 봤는데
udev 장치 연결에 의해 트리거되는 xinput 속성을 설정하는 방법은 무엇입니까?
USB 키보드가 연결되어 있을 때 키보드 레이아웃이 재설정되지 않도록 방지
그러나 가장 좋은 대답은 OP가 다른 새 키보드를 연결했다고 가정하는 것입니다. 제 생각에는 그것은 잘못된 가정이고 확실히 제 경우는 아닙니다.
나는 이것이 udev
문제이고 매우 심각한 실수라는 것을 알고 있습니다. 우분투 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
헤드폰입니다.
답변1
Jabra 헤드셋에는 운영 체제에 "키보드와 유사한" 입력 장치로 표시되는 일부 버튼이 포함되어 있는 것으로 보이며, 새 키보드 장치가 연결될 때마다 데스크탑 환경은 알고 있는 설정에 따라 X11 키보드 레이아웃을 재설정합니다. 에 대한.
setxkbmap
데스크탑 환경은 사용자의 설정을 알지 못하므로 결국 데스크탑 환경과 데스크탑 환경이 setxkbmap
서로 싸우게 됩니다.
setxkbmap
를 사용하는 대신 먼저 데스크탑 환경의 구성 도구를 사용하여 키보드를 올바르게 설정해야 합니다. 안타깝게도 Gnome 데스크탑은 단순화된 키보드 레이아웃 선택기 GUI만 제공하는 것으로 보입니다. 그러나 자세한 내용은 에서 직접 설정을 삭제할 수 있어야 합니다 /etc/default/keyboard
.man 5 keyboard
답변2
헤드셋이 연결될 때 Gnome 대화 상자를 사용하여 키보드 레이아웃을 설정하여 이 문제를 해결했습니다. 왠지 연결되면 Gnome은 레이아웃이 전혀 설정되지 않은 것으로 생각합니다.
일단 설정하면 헤드폰이 연결되어 있는지 여부에 관계없이 레이아웃이 유지됩니다.