AltGr을 <Ctrl> + <Alt>에 바인딩하는 방법


11

Sarala (Hard la)라는 인체 공학적 텔루구 어 키보드 레이아웃과 동등한 Linux를 만들려고합니다. 지금까지 모든 키를 매핑 할 수있었습니다. 레이아웃은 다양한 레벨에 대해 다음 키 조합을 사용합니다.

None (Base): Level1
Shift: Level2
Ctrl + Alt: Level3
Ctrl + Alt + Shift:Level4

리눅스는 다양한 수준에서 다음을 사용합니다.

None (Base): Level1
Shift: Level2
RAlt: Level3
RAlt + Shift:Level4

키 조합과 레이아웃을 일치 시키려면 + 로 매핑 AltGr해야합니다 . 에서 다양한 파일을 검색하지 못했습니다 . 모든 신체 알고는 내가 어떻게 결합 할 수 있는가 에 + ?CtrlAlt/usr/share/X11/xkb/ISO_Level3_ShiftCtrlAlt

key <RALT>  {
    symbols[Group1]= [ Mode_switch, Multi_key  ],
    virtualMods= AltGr
};

레이아웃을 보려면 여기에 있습니다



2
고맙지 만, 그것은 매우 유익하지만 xkb구성을 제외한 다른 모든 것에 대해 이야기 합니다.
ShaggyInjun

아치 리눅스 위키 에서이 위키 를 살펴보고 Alt와 Altgr (Level 3)에 대한 부분을 확인할 수 있습니다. 나는 확실하지이 당신을 도울 것입니다 경우,하지만 XKB에 대한 많은 정보를 갖고있는 것 같아요
없음 시간

나는 xkb가 너무 설명 적이 지 않은 오류로로드하지 못한다는 것을 시도했습니다. 편리한 오류는 없지만 나중에 첨부 할 수 있습니다.
ShaggyInjun

답변:


6

새로운 xkb 유형을 정의해야합니다. xkb / types 디렉토리에서 예제를 볼 수 있습니다 (보통 /usr/share/X11/xkb/types). 거기에서 다른 레벨의 시프트를 얻기 위해 임의의 수정 자의 조합을 정의 할 수 있습니다. 문제의 경우 다음과 같이 사용할 수 있습니다.

type "C_A_to_L3" {
    modifiers = Control+Alt+Shift;
    map[None] = Level1;
    map[Shift] = Level2;
    map[Control+Alt] = Level3;
    map[Control+Alt+Shift] = Level4;
    level_name[Level1] = "Base";
    level_name[Level2] = "Shift";
    level_name[Level3] = "Alt Base";
    level_name[Level4] = "Shift Alt";
};

그런 다음 심볼 파일에서 해당 유형을 기본값으로 설정하거나 키별로 유형을 설정할 수 있습니다. types 디렉토리의 파일에 유형이 있어야하고 symbols 디렉토리에있는 파일의 키 정의가 필요합니다. xkb는 엄격한 파일 시스템 계층 구조를 사용하여 각 구성 요소를 찾습니다.

키보드 레이아웃을 직접 해킹하여 사용자 정의 레이아웃 ( https://github.com/willghatch/hatchak )을 만들었습니다.이 레이아웃 은 이상한 것들을 실험 한 다양한 반복을 거쳤습니다. XKB는 때때로 꽤 까다 롭고 이상 할 수 있지만, 지금까지 본 것 중 가장 구성 가능한 키보드 시스템입니다. 더 많은 문제가 발생하면 가장 좋은 참고 자료는 다음과 같습니다.

[편집 : 원본 링크가 현재 다운되었지만 다행히도 archive.org가 있습니다.]

https://web.archive.org/web/20150722164820/http://www.charvolant.org/~doug/xkb/html/index.html

https://web.archive.org/web/20190419170426/http://pascal.tsu.ru/en/xkb/

그것이 내가 찾은 최고의 문서이지만주의 깊은 사례는 많이 남습니다. 행운을 빕니다.


나는 당신의 아이디어가 정말로 유용하다고 생각하지만, 당신이 언급 한 것처럼 심볼 파일에서 생성 된 유형을 기본값으로 사용하려고 정말로 고심하고 있습니다. 컴퓨터에있는 심볼 파일이 상당히 길어서 기본 유형의 정의처럼 보이는 행이 표시되지 않습니다.
Dave

1
을 설정하여 심볼 파일 내 섹션의 기본값을 정의 할 수 있습니다 key.type. /usr/share/X11/xkb/symbols/srvr_ctrl"no_srvr_keys"섹션 에서 (또는 이와 유사한 곳 에서) 예를 볼 수 있습니다 . 여기 내가 가진 것입니다 : xkb_symbols "no_srvr_keys"{key.type = "TWO_LEVEL"; 키 <FK01> {[F1, F1]}; 키 <FK02> {[F2, F2]}; <etc ...>};
윌리엄 해치

빠른 답변 주셔서 감사합니다. 나는 그것을 적용 할 수 있다고 생각합니다. 많은 감사드립니다.
Dave

오랫동안이 페이지를 다시 방문한 모든 사람들에 대한 피드백입니다. 나를 위해이 접근법은 새로 설치된 Fedora에서 작동했습니다. 알 수없는 이유 중 일부는 위의 의견을 쓸 때 민트와 함께 작동하지 않았습니다. 그러나 이제는 작동하고 많은 시간을 절약합니다.
Dave

-1

필자가 생각한 것으로부터 AltGr을 지원하는 키보드 레이아웃이 필요하므로 구성 메뉴의 "키보드> 단축키> 대체 문자 키"에서 단축키를 간단하게 변경할 수 있습니다. 일반적으로 "데드 키가 있음"또는 "AltGr 데드 키"로 작성된 레이아웃으로 변경하여 볼 수 있습니다.


개인적 사용을 요구하지 않고 레이아웃을 배송해야합니다. 불행히도 이것은 나쁜 대답입니다. 그러나 감사합니다.
ShaggyInjun
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.