Debian 시스템의 XKB 키보드 구성

Debian 시스템의 XKB 키보드 구성

XKB 확장이 어떻게 작동하는지 이해하기 위해 데비안에서 키보드 레이아웃을 구성하고 있습니다. 사용자 정의 키보드 레이아웃을 로드하려고 하는데 왜 그래픽 환경에서는 작동하지 않지만 가상 콘솔에서는 작동하는지 잘 모르겠습니다.

/usr/share/X11/xkb/symbols/foobar에 있는 파일을 기반으로 에 새 키보드 레이아웃 파일을 만들었습니다 /usr/share/X11/xkb/symbols/us. 관련 부분은 다음과 같습니다.

default  partial alphanumeric_keys modifier_keys
xkb_symbols "basic" {

    name[Group1]= "English (US)";

    key <TLDE> {    [     grave,    asciitilde  ]   };
    // key <AE01> { [     1,    exclam      ]   };
    key <AE01> {    [     a,    A       ]   };
    key <AE02> {    [     2,    at      ]   };
    key <AE03> {    [     3,    numbersign  ]   };
// ...

<AE01(단일 키) 라고 표시된 키가 기호에서 1exclam로 변경된 것을 볼 수 있습니다 a.A

다음과 같이 파일을 편집하여 사용자 정의 foobar레이아웃을 사용하도록 시스템을 구성했습니다 ./etc/default/keyboard

# KEYBOARD CONFIGURATION FILE

# Consult the keyboard(5) manual page.

XKBMODEL="pc105"
# XKBLAYOUT="us"
XKBLAYOUT="foobar"
XKBVARIANT=""
XKBOPTIONS="ctrl:nocaps,altwin:menu_win"

BACKSPACE="guess"

시스템을 그래픽 데스크탑 환경으로 부팅하고 키를 누르면 다음 1과 같이 나타날 것으로 예상했지만 a여전히 작동하지 않습니다 1.

이상한 점은 키보드 단축키를 사용하여 가상 콘솔로 전환하면 Ctrl + Alt + F1변경 사항이 적용되고 1키를 누르면 a.

또한 다음 명령을 사용하면 localectl변경 사항이 적용된 것처럼 보입니다 .

$ localectl
   System Locale: LANG=en_US.UTF-8
       VC Keymap: n/a
      X11 Layout: foobar
       X11 Model: pc105
     X11 Options: ctrl:nocaps,altwin:menu_win

내 사용자 정의 레이아웃이 foobar그래픽 환경에서 작동하지 않는 이유는 무엇입니까?

나는 systemd 장치의 우여곡절을 검색해 보았고 keyboard-setup.service다음 스크립트가 호출되는 것을 발견했습니다.

  • /lib/console-setup/keyboard-setup.sh
  • /usr/bin/setupcon

내 레이아웃이 명령에 출력 foobar되지 않는 것으로 나타났습니다 .localectl list-x11-keymap-layouts

매뉴얼 페이지는 localectl다음 구성 가이드를 가리킵니다.

https://www.x.org/releases/current/doc/xorg-docs/input/XKB-Config.html

더 이상 레이아웃을 사용해서는 안 된다고 언급되어 있습니다.

키맵 구성은 이전에 xkb를 구성한 방식입니다. 사용자는 직접 xkb 구성을 지정하는 특수 키맵 파일을 포함하고 있습니다. 이 방법은 더 유연하고 더 간단하고 직관적인 구문을 허용하는 이전에 설명한 규칙 파일로 대체되었습니다. 호환성을 위해서만 유지되며 가능하면 사용하지 않는 것이 좋습니다.

그래도 다음을 /etc/X11/xorg.conf.d/90-foobar-kdb.conf사용하여 파일을 채우려고 했습니다.

Section "InputClass"
    Identifier "keyboard defaults"
    MatchIsKeyboard "on"

    Option "XkbModel" "pc105"
    Option "XkbLayout" "foobar"
    Option "XKbOptions" ""
EndSection

시스템을 다시 시작한 후 XKbOptions옵션을 선택 취소했지만 여전히 foobar 지도를 로드하는 데 성공하지 못했습니다. 그래서 저는 X11에서 사용자 정의 레이아웃을 로드하는 방법에 대해 여전히 혼란스럽습니다.

관련 정보