xkb 키 바인딩을 영구적으로 변경하시겠습니까?

xkb 키 바인딩을 영구적으로 변경하시겠습니까?

에 사용자 정의 키보드 레이아웃이 있습니다 /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분명히 빈 디렉터리를 만들 필요는 없으며 필요한 파일이 있는 디렉터리만 만들면 됩니다.

그런 다음 기호 파일 usus이름 /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의 솔루션이 내 시스템에서 작동하지 않아서 다른 솔루션을 찾아야 했습니다. 나는 다음을 수행했습니다.

  1. 사용자 정의 키 바인딩을 만들었습니다.
  2. 내가 선택한 표준 키 바인딩과 정확히 동일하게 이름을 지정했습니다.환경 설정(저는 Manjaro를 사용합니다).
  3. 저는 홈디렉토리에 저장합니다.
  4. 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
    
  5. 이 스크립트는 ~/.xinitrc로그인 프롬프트를 표시하기 전에 필요할 때(가장 중요하게) 내부에서 실행되어 표준 키 바인딩을 사용자 정의 버전으로 대체하므로 비밀번호를 입력해야 할 때 바인딩이 활성화됩니다.

답변3

가장 쉬운 방법은 아마도 사용자 정의 레이아웃을 사용하여 새 기호 파일을 만드는 것입니다. us 기호 파일을 복사하여 기본 레이아웃에서 편집한 후 동일한 디렉터리에 milquetoast로 저장합니다. 그런 다음 간단히 이 기호를 로드할 수 있습니다.

setxkbmap milquetoast

milquetoast라는 새로운 언어가 나오지 않는 한, 이 파일은 업데이트로 덮어쓰여지는 일이 없습니다.

관련 정보