루트 액세스 없이 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
는 전자가 더 나은 오류 메시지를 제공하는 것 같기 때문입니다.