AltGr+i,j,k,l을 커서 키로 제대로 작동하게 만드는 방법은 무엇입니까?

AltGr+i,j,k,l을 커서 키로 제대로 작동하게 만드는 방법은 무엇입니까?

(이미 질문한 적이 있어요.뿌리하지만 답변을 얻지 못해 지금 여기에서 노력하고 있습니다. )

커서 키와 AltGr+c, h, t, n 등과 같은 다른 키(qwerty가 있는 경우 i, j, k, l)가 필요합니다. 나는 사용자 정의 키보드 레이아웃 파일을 만들었습니다(참조:여기). 기본적으로 레이아웃 파일을 가져와 관련 줄을 다음과 같이 수정했습니다.

key <AC09> { [ n, N, Right, Right ] };

나는 이것을 가지고 있고 /usr/share/X11/xkb/symbols/nonpop그것을 setxkbmap nonpop로드합니다 ~/.xinitrc(나는 DE를 사용하지 않고 단지 Awesome WM을 사용하고 있습니다).

그리고 거의 작동합니다.

  • 예를 들어 Firefox에서는 모든 것이 잘 작동합니다. 예를 들어 AltGr+n은 커서를 오른쪽으로 이동하고 Shift+AltGr+n은 텍스트를 선택합니다. LyX의 기본 텍스트 영역에서도 마찬가지입니다.
  • MonoDevelop에서 커서는 AltGr+n을 통해 이동하지만 Shift+AltGr+n은 선택이 아닌 커서만 이동합니다. Shift+Right는 일반적으로 텍스트를 선택합니다.
  • NetBeans 및 LyX 대화 상자에서 (Shift+)AltGr+n을 누르면 아무 작업도 수행되지 않습니다.

나는 이러한 다른 프로그램이 AltGr 상태를 읽고 그것이 나쁜 것이라고 생각한다고 생각합니다. 그렇다면 내가 원하는 대로 일이 이루어지도록 할 수 있는 방법은 없을까? 것 같다피복층해결책이 될 수도 있지만 아직 작동하지 않았습니다.

답변1

문제는 AltGr과 같은 일반적인 수정자를 사용할 때 AltGrAltGr 화살표를 사용할 때 프로그램이 실제로 그것을 누른 것으로 처리한다는 것입니다. 따라서 Shift++는 AltGr실제로 i를 누르는 것처럼 프로그램을 바라보고 Shift + Alt + Up, 추가 항목을 추가하면 Alt프로그램이 혼란스러워집니다. 가능한 경우 Shift + Alt + Up와 동일한 작업을 수행하는 더 많은 단축키를 프로그램에 추가하여 이를 방지할 수 있습니다. Shift + Up또는 프로그램이 알지 못하는 일반적이지 않은 수정자를 사용할 수 있습니다.

다른 방법도 있지만 이 방법이 더 쉽고 저에게는 잘 맞았습니다. 영숫자 키에 "Group2" 오버레이가 생성되므로 Group2로 전환하면 문자 대신 화살표가 표시됩니다. 토글( Caps Lock정상 작동처럼 켜기/끄기) 또는 일시적(정상 작동처럼 눌러서 활성화 )을 통해 Shift그룹 2로 전환 할 수 있습니다 .

partial alphanumeric_keys
xkb_symbols "alpha_arrows" {
    key <AD07> {
        symbols[Group2]= [            Home ]  # u
    };
    key <AD08> {
        symbols[Group2]= [              Up ]  # i
    };
    key <AD09> {
        symbols[Group2]= [             End ]  # o
    };
    key <AD10> {
        symbols[Group2]= [           Prior ]  # p
    };
    key <AC07> {
        symbols[Group2]= [            Left ]  # j
    };
    key <AC08> {
        symbols[Group2]= [            Down ]  # k
    };
    key <AC09> {
        symbols[Group2]= [           Right ]  # l
    };
    key <AC10> {
        symbols[Group2]= [            Next ]  # ;
    };
    key <AB06> {
        symbols[Group2]= [          Delete ]  # n
    };
};

그런 다음 Group2 활성화 키로 사용할 키를 선택할 수 있습니다. 다음 명령을 사용하여 모든 옵션을 볼 수 있습니다(직접 수행하고 싶지 않은 경우).

$ grep grp /usr/share/X11/xkb/rules/base.lst

Caps Lock그런 다음 누르고 있는 동안에만 화살표를 활성화하는 옵션과 같은 옵션을 선택합니다 . 또한 실제로 Caps Lock을 켜고 끄는 새로운 콤보 Alt+ 도 추가됩니다.Caps Lock

$ setxkbmap -option grp:caps_switch

이를 Xorg 구성 파일에 추가하여 변경 사항을 영구적으로 적용할 수 있습니다. 이를 수행하는 방법에 대한 온라인 가이드가 많이 있습니다.

알아채다:

  • keyreplace key기존 정의를 대체하는 것이 아니라 추가하고 싶기 때문에 대신 사용됩니다 .
  • 실제로 대체 키보드 레이아웃(라틴어/영어 문자도 입력할 수 있는 일부 국제 키보드)이 있는 경우 이 방법이 적합하지 않을 수 있습니다. ALPHANUMERIC화살표 키를 활성화하려면 확장 수정자(예: Hyper)를 기반으로 새 유형을 정의해야 합니다 .

답변2

내 xkb 구성 스크립트에 관심이 있으실 것입니다. 간단히 말해서 Miniguru와 TEX Yoda의 시뮬레이션을 정의했습니다.

http://github.com/frgomes/carpalx

관련 정보