AltGr+키를 기호에 바인딩하는 방법은 무엇입니까?

AltGr+키를 기호에 바인딩하는 방법은 무엇입니까?

AltGr+와 다른 조합을 결합 W하고 싶은데 æ어떻게 해야 합니까? 아직 AltGr++ Shift가 필요 합니다 W.Æ

저는 주로 setxkbmap키맵을 바꿀 때 사용합니다.

답변1

그것은 하기 쉽다xmodmap. keysym명령을 사용하여 키와 연결된 키 기호를 변경할 수 있습니다. 이는 현재 수정자의 조합을 사용하여 이 키 기호를 전송하는 모든 키에 영향을 미칩니다. 일반 인쇄 가능한 문자의 경우 네 가지 키 기호는 bare key, keyed Shift, keyed AltGrAltGr+ key 입니다 Shift.

keysym A = a A aring Aring
keysym O = o O oslash Ooblique
keysym W = w W ae AE

이러한 지침을 파일(예: )에 넣고 ~/.Xmodmap를 사용하여 로드합니다 xmodmap ~/.Xmodmap. ~/.Xmodmap일부 환경에서는 로그인할 때 호출된 파일이 자동으로 로드됩니다(유닉스 버전 및 데스크탑 환경에 따라 다름).

/usr/share/X11/locale/en_US.UTF-8/Compose키 기호 이름은 또는 /usr/include/X11/keysymdef.h(Debian 위치, 다른 시스템에서는 다를 수 있음) 에서 찾을 수 있습니다 . 기호의 키 기호 이름을 모르는 경우 유니코드 번호를 사용할 수 있습니다. U그 뒤에 16진수 숫자가 옵니다.

keysym W = w W U00e6 U00c6

답변2

이를 달성하기 위해 사용자 정의 XKB 맵을 사용할 수 있습니다. 를 사용하여 현재 지도를 덤프하고 xkbcomp $DISPLAY dump.xkb편집한 후 를 사용하여 로드하는 것이 좋습니다 xkbcomp newmap.xkb $DISPLAY. 덤프 파일은 매우 크고 중복된 정보가 많습니다.

편집하는 가장 쉬운 방법은 현재 지도에서 altgr의 용도를 찾는 것입니다. 일반적으로 ISO_LEVEL3 수정자입니다. 현재 키맵이 altgr을 사용하지 않는 경우 altgr을 사용하는 키맵을 로드하여 작동 방식을 확인할 수 있습니다. 예를 들어, -layout us -variant altgr-intl이는 매우 광범위하며 전부는 아니더라도 대부분의 유럽 키를 바인딩합니다. 무슨 일이 일어나고 있는지에 대한 간략한 소개는 다음과 같습니다.

xkb는 커널에서 키코드를 가져오고, 각 키코드에 대한 레이블을 설정하고, 해당 레이블과 수정자 키를 사용하여 출력해야 하는 키 기호를 결정합니다. 각 키에는 예상되는 수정자 키와 각 조합의 출력 내용을 정의하는 유형이 할당됩니다. 당신이 얻는 덤프를 보십시오 xkbcomp: 태그는 에 정의되어 있고 xkb_keycodes, 유형은 에 있고 xkb_types, 태그-키 기호는 에 있습니다 xkb_symbols. 이 중에서 xkb_symbols다른 두 개를 편집하고 참조하여 변경하려는 내용을 확인하는 것이 좋습니다. 또한 xkb_symbols현재 수행되는 방식을 보고 이해하고 적절하게 편집할 수 있습니다.

xkb_types섹션에는 다양한 키 정의 수정자 수준이 포함되어 있으므로 altgr 및 Shift 모드가 있는 수정자 수준이 필요합니다. 예:

type "FOUR_LEVEL_ALPHABETIC" {
    modifiers= Shift+Lock+LevelThree;
    map[Shift]= Level2;
    map[Lock]= Level2;
    map[LevelThree]= Level3;
    map[Shift+LevelThree]= Level4;
    map[Lock+LevelThree]= Level4;
    map[Shift+Lock+LevelThree]= Level3;
    level_name[Level1]= "Base";
    level_name[Level2]= "Shift";
    level_name[Level3]= "Alt Base";
    level_name[Level4]= "Shift Alt";
};

이는 표시된 키에 FOUR_LEVEL_ALPHABETIC4가지 모드가 있음을 의미합니다. Normal, Shift/Caps, altgr, altgr-shift가 당신이 찾고 있는 것과 비슷합니다.

w의 키코드를 모른다면 이제 그것이 무엇인지 알고 싶을 것입니다. xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p'누른 키에 대한 키코드를 제공합니다. grep출력을 더 읽기 쉽게 만드는 것입니다.

xkb_keycodes이전에 얻은 덤프 맵 부분과 함께 얻은 키코드를 상호 참조하십시오. 나에게 w는 키코드 25를 제공한다. 예를 들어 올바른 키 코드를 less덤프하고 찾으십시오 . 또는 Label은 xkb가 이후 섹션에서 키를 참조하는 데 사용하는 이름일 뿐입니다.<LABEL> = ##;<AD02> = 25;cat dump.xkb| grep ' = 25;'

이제 레이블이 있으므로 xkb_symbols실제로 레이블을 주요 기호에 매핑하는 위치로 이동합니다. 형식은

key <AD02> {
        type= "FOUR_LEVEL_ALPHABETIC",
        symbols[Group1]= [  w, W, aring, Aring ]
    };

type=섹션에서 원하는 유형을 선택 xkb_types하면 symbols[Group1]=해당 유형에 필요한 각 모드에 대한 키 기호가 있습니다. 마찬가지로 이러한 유형의 일반, Shift/Caps, Altgr, Shift-altgr. [Group1], 제가 ​​아는 한, 이것은 설정한 잠금 키를 사용하여 즉시 변경할 수 있는 여러 키맵을 사용하는 방법입니다. 저는 그룹을 직접 사용하지 않으므로 모든 것이 그룹 1입니다.

여기에서 사용할 수 있는 다양한 키보드 기호를 모두 찾으려면 를 확인하세요 /usr/include/X11/keysymdef.h. 찾고 있는 두 기호는 aeæ와 AEÆ입니다.

key <AD02> {
        type= "FOUR_LEVEL_ALPHABETIC",
        symbols[Group1]= [  w, W, ae, AE ]
    };

좀 헤매고 있을지도 모릅니다. 확인하다아치 위키피디아XKB의 페이지는 어떤 운영 체제나 배포판을 사용하든 상관없이 좋은 내용입니다.

답변3

기호 (/usr/share/X11/xkb/symbols/XY) 파일에서 Keyboard Variants 아래의 줄을 찾으세요 { [ w, W,. 분명히 이 두 가지는 소문자 및 대문자 w에 해당합니다. 이제 그 뒤의 세 번째와 네 번째 항목은 각각 AltGr + wAltGr++ 를 누를 Shift때 나타나는 항목 에 해당합니다 w.

세 번째와 네 번째 문자를 원하는 문자로 바꾸거나, 없으면 추가해야 합니다.

Wikipedia에 따르면 해당 (ae, AE) 유니코드 포인트는 각각 U+00E6 및 U+00C6이므로 기호 파일의 새 편집 줄은 (+ 기호 생략)이어야 합니다.

{ [         w,          W,   U00E6,   U00C6 ]   };

이 파일을 업데이트하는 시스템 업데이트는 이를 덮어쓰게 되므로 편집된 파일의 복사본을 집 어딘가에 보관하고 업데이트로 덮어쓸 때마다 다음 명령으로 바꾸는 것이 좋습니다.

sudo cp /YOUR/BACKUP/SYMBOL_FILE /usr/share/X11/xkb/symbols/SYMBOL_FILE

관련 정보