루트 없이 키보드 레이아웃 사용자 정의

루트 없이 키보드 레이아웃 사용자 정의

루트 액세스 없이 X11에서 사용자 정의 키보드 레이아웃을 설정하는 단계는 무엇입니까? 나는 이것이 가능하다는 것을 알고 있습니다.이 답변, 하지만 Error loading new keyboard description새로운 레이아웃을 사용하려고 할 때마다 문제가 발생합니다.

.config다음과 같은 디렉터리를 만들었습니다 xkb.

xkb/
  rules/
    evdev-local
    evdev-local.lst
    evdev-local.xml
  symbols/
    my-us

내가 추가한 섹션 evdev-local.xml에서<layoutList>

<layout>
  <configItem>
    <name>my-us</name>

    <shortDescription>my-us</shortDescription>
    <description>English (My US)</description>
    <languageList>
      <iso639Id>eng</iso639Id>
    </languageList>
  </configItem>
  <variantList>
    <variant>
      <configItem>
        <name>mdvp</name>
        <description>English (Modified Programmer Dvorak)</description>
      </configItem>
    </variant>
  </variantList>
</layout>

그리고 symbols/my-us파일은

partial alphanumeric_keys
xkb_symbols "mdvp" {

    include "us(dvp)"
    name[Group1] = "English (Modified Programmer Dvorak)";

    //             Unmodified   Shift  AltGr        Shift+AltGr
    // upper row, left side
    key <AD01> { [ apostrophe,  quotedbl, dead_acute, dead_diaeresis    ] };

    // lower row, left side
    key <AB01> { [ semicolon,   colon, dead_ogonek, dead_doubleacute ] };

    include "level3(ralt_switch)"
};

그럼 난 달려

setxkbmap -I ~/.config/xkb/ -rules evdev-local -layout my-us

그리고 얻다

새 키보드 설명을 로드하는 중에 오류가 발생했습니다.

뒷이야기: 저는 Programmer's Dvorak을 사용해 왔고 그것이 가장 마음에 들었습니다. 하지만 세미콜론과 아포스트로피를 US Dvorak에 있던 위치로 다시 바꾸고 싶습니다. 그게 제 작업 흐름에 더 적합하기 때문입니다.

나는 보았다이 튜토리얼SE에서 권장되며 내 컴퓨터에서 작동하지만 다른 사람이 내 컴퓨터에서 작업해야 할 때 일반 영어 QWERTY로 다시 전환할 수 있도록 KDE 레이아웃 전환기 위젯을 사용할 수 있어야 합니다.

답변1

어떤 이유로 -print출력을 다음으로 파이프 하면 xkbcomp:

setxkbmap \
    -I ~/.config/xkb/ \
    -rules evdev-local \
    -layout "my-us(mdvp)" \
    -print |
    xkbcomp -I ~/.config/xkb/ - "$DISPLAY"

나는 당신의 레이아웃에 아무런 문제가 없다고 생각합니다. 직접 설정해 보았지만 setxkbmap해당 -verbose옵션을 사용해도 출력이 도움이 되지 않습니다.

Warning! Multiple definitions of rules file
         Using command line, ignoring X server
Warning! Multiple definitions of keyboard layout
         Using command line, ignoring X server
Trying to build keymap using the following components:
keycodes:   evdev+aliases(qwerty)
types:      complete
compat:     complete
symbols:    pc+my-us(mdvp)+inet(evdev)+terminate(ctrl_alt_bksp)
geometry:   pc(pc104)
Error loading new keyboard description

이것이 기본 상세 수준입니다. 하지만 10(명백히 최대 수준)으로 설정하더라도 위의 내용 외에도 "Locale is C"가 출력되고 규칙 파일의 위치를 ​​찾으려고 시도합니다. 키보드 설명을 로드할 수 없는 이유에 대한 정보는 출력하지 않습니다.

xkbcomp내가 파이프를 사용하는 것보다 파이프를 선호하는 이유 중 하나 setxkbmap는 전자가 더 나은 오류 메시지를 제공하는 것 같기 때문입니다.

관련 정보