xmodmap에서 xkb 구성 생성

xmodmap에서 xkb 구성 생성

xmodmap유용한 다국어 발음 구별 부호, 영어 인용부호, 대시 등이 포함된 사용자 정의 파일을 사용하고 있습니다 . 이 맵을 사용하고 싶으므로 여기에서 구성을 만들어야 kmscon합니다 . xkb이를 수행하는 자동화된 방법이 있습니까? 아니면 이 작업을 자주 수행할 필요가 없기 때문에 간단한 수동 프로세스를 수행해야 합니까?

답변1

자신만의 xkb 구성 파일 만들기

아이디어는 현재 키보드 구성을 (호출하지 않고 xmodmap) "읽고" 이를 기반으로 자신만의 기호 파일을 작성하는 것입니다. 첫 번째:

xkbcomp -xkb $DISPLAY

server-0_0.xkb이 파일에서 다음 블록을 생성 합니다.

xkb_symbols "pc+inet(evdev)+compose(menu)+whatever(option)" {
    key <ESC> { [ Escape ] };
    ...
};

첫 번째 줄을 다음으로 변경합니다.

default xkb_symbols "my_symbols" {
    include "pc+inet(evdev)"
    include "compose(menu)+whatever(option)"

(내 생각에는 옵션을 "포함" 줄 수에 관계없이 분할할 수 있다고 생각합니다). 수정하려는 키를 변경하고 앞에 다음을 추가합니다 override.

override key <AE10>  { [ 0, parenright, degree ]};

변경되지 않은 키를 모두 제거합니다.

시스템 전체 설치

모두 넣으세요 /usr/share/X11/xkb/symbols/my_terrific_kb. 이제 사용자는 setxkbmap my_terrific_kb(in .xinitrc또는 .xsessionrc)을 사용하여 로드할 수 있습니다. 어쩌면 Option "XkbLayout" "my_terrific_kb"시스템 xorg.conf전체를 변경할 수도 있습니다.

단일 사용자 설치

모두 넣으세요 ~/anywhere/my_terrific_kb. XInput ID를 사용하여 키보드를 찾으세요 xinput list. 그런 다음 xkbcomp -i <XInput_id> ~/anywhere/my_terrific_kb $DISPLAY.

답변2

생성된 매핑 파일은 xkbcomp :0 custom-xkb-keymap간단히 매개변수를 교환하여 로드할 수 있는 여러 구성 요소로 구성됩니다 xkbcomp custom-xkb-keymap :0. 여기에 몇 가지 경고가 표시되지만 파일의 레이아웃을 변경하면 작동하는 것 같습니다.

xkb 레이아웃은 symbols예를 들어 디렉토리 에 저장됩니다 /usr/local/share/X11/xkb/symbols. 경로는 시스템마다 다를 수 있습니다. 레이아웃이 필요한 경우 다음과 같은 섹션을 잘라내야 합니다.

xkb_symbols "id+id+id(pc104)" {
    name[group1]="..."
    .
    .
    .
};

symbols그리고 디렉토리 에 저장합니다 . 거기에 어떤 파일도 덮어쓰지 않도록 하세요! 해당 위치에 저장되면(예: 로 mylayout) 를 입력하여 로드할 수 있습니다 setxkbmap mylayout. 이는 섹션의 설정에 해당합니다 xorg.conf(참조:Option "XkbLayout" "mylayout"InputDevicekbd 매뉴얼 페이지상세 사항은).

출력의 다른 부분은 xkcomp다른 디렉토리의 파일과 일치하는 것으로 보입니다. 따라서 작동하지 않는 경우 custom-xkb-keymap해당 구성 요소를 구성 요소로 분할하여 아래의 올바른 디렉토리에 복사 해야 할 수도 있습니다 /usr/local/share/X11/xkb. 하지만 이건 내가 한 번도 해본 적이 없는 일이다.

더 나은 레이아웃

디컴파일된 코드처럼 보이는 원시 덤프를 사용하는 대신 symbols더 읽기 쉬운 자신만의 파일을 만들 수도 있습니다. 나는 대부분의 사람들에게는 작동하지 않을 수 있는 나만의 사용자 정의 레이아웃을 가지고 있지만 이 짧은 파일을 계속 살펴볼 수 있습니다.나는 독일어 키보드로 프로그래밍하는 데 사용합니다.(파일의 모양과 symbols파일로 무엇을 할 수 있는지에 대한 아이디어를 얻으려면).

답변3

방금 이 문제를 해결했습니다. xmodmap구성을 적용한 후 do를 사용하여 현재 키맵(display에서 )을 이름이 지정된 파일에 xkbcomp :0 custom-xkb-keymap복사합니다 .xkb:0custom-xkb-keymap

답변4

이 스레드에도 비슷한 질문이 있습니다.Xepyr: 키맵이 제대로 작동하지 않습니다. 제공된 솔루션과 유사하게 키보드 설정을 저장할 수 있습니다

setxkbmap -display :0 -print > mykeymap

이 파일은 xkbcomp를 통해 다른 시스템에 적용할 수 있습니다.

xkbcomp mykeymap :0

이 명령은 gnome 또는 다른 DE의 자동 시작에서 실행될 수 있습니다. 모든 수동 변경 사항이 인계될지는 모르겠지만 시도해 볼 가치가 있다고 생각합니다. xkbcomp를 사용하지 않고 자동 로드하려면 이 파일을 어디에 두어야 할지 모르겠습니다.

관련 정보