에 사용자 정의 키보드 레이아웃이 있습니다 /usr/share/X11/xkb/symbols/us
. 업데이트될 때마다 파일이 표준 키보드 레이아웃으로 업데이트됩니다. 이를 영구적으로 변경하는 방법이 있습니까, 아니면 배포 수준 구성이 아닌 사용자 공간에서 이를 변경하는 방법이 있습니까?
사용자 정의 키보드 레이아웃을 처리하는 더 좋은 방법이 있다면 알려주세요. 내가 아는 한, 이 문제를 해결하는 가장 좋은 방법은 xkb 기호 파일을 사용하는 것인데 이에 대한 문서는 많지 않습니다.
감사해요.
답변1
즉, /home/<user>/
아래에 동일한 구조를 가진 디렉토리 트리를 만듭니다 ./usr/share/X11/xkb/
$ tree -L 1
.
├── compat
├── geometry
├── keycodes
├── rules
├── symbols
└── types
따라서 관련 파일을 등에 넣으십시오 compat
. symbols
분명히 빈 디렉터리를 만들 필요는 없으며 필요한 파일이 있는 디렉터리만 만들면 됩니다.
그런 다음 기호 파일 us
의 us
이름 /usr/share/X11/xkb/
을 /usr/share/X11/xkb/symbols/
. mine
잘할 거예요.
사용자 정의 Xkb 디렉토리를 배치 /home/<user>/my-xkb
하고 사용자 정의 기호 파일의 이름을 mine
.
설정 레이아웃 을 사용하는 경우 setxkbmap(1)
출력을 인쇄하고 로 파이프하도록 변경할 수 있습니다 xkbcomp(1)
.setxkbmap
setxkbmap mine
다음과 같이 변경해야 합니다.
setxkbmap mine -print |
xkbcomp -I"/home/<user>/my-xkb" - "$DISPLAY"
답변2
Guildenstern의 솔루션이 내 시스템에서 작동하지 않아서 다른 솔루션을 찾아야 했습니다. 나는 다음을 수행했습니다.
- 사용자 정의 키 바인딩을 만들었습니다.
- 내가 선택한 표준 키 바인딩과 정확히 동일하게 이름을 지정했습니다.환경 설정(저는 Manjaro를 사용합니다).
- 저는 홈디렉토리에 저장합니다.
10-restxkbmap.sh
/etc/X11/xinit/xinitrc.d/
다음 내용으로 이름이 지정된 bash 스크립트를 만들었습니다 .#!/bin/bash diff -q /home/neo/.config/neo/xkb/symbols/us /usr/share/X11/xkb/symbols/us >/dev/null if [ $? -eq 1 ] then sudo cp /home/neo/.config/neo/xkb/symbols/us /usr/share/X11/xkb/symbols/us fi
- 이 스크립트는
~/.xinitrc
로그인 프롬프트를 표시하기 전에 필요할 때(가장 중요하게) 내부에서 실행되어 표준 키 바인딩을 사용자 정의 버전으로 대체하므로 비밀번호를 입력해야 할 때 바인딩이 활성화됩니다.
답변3
가장 쉬운 방법은 아마도 사용자 정의 레이아웃을 사용하여 새 기호 파일을 만드는 것입니다. us 기호 파일을 복사하여 기본 레이아웃에서 편집한 후 동일한 디렉터리에 milquetoast로 저장합니다. 그런 다음 간단히 이 기호를 로드할 수 있습니다.
setxkbmap milquetoast
milquetoast라는 새로운 언어가 나오지 않는 한, 이 파일은 업데이트로 덮어쓰여지는 일이 없습니다.