xkb를 사용하여 LSGT를 왼쪽 컨트롤에 매핑하는 방법은 무엇입니까?

xkb를 사용하여 LSGT를 왼쪽 컨트롤에 매핑하는 방법은 무엇입니까?

LSGT성공하지 못한 채 (유럽 키보드의 키)를 "Left Control"에 매핑 하려고 했습니다 xkb(X 및 ubuntu 18에서).

나는 다음을 시도했다:

  1. LSGT줄을 다음으로 바꾸십시오.
    key <LSGT> { [Control_L] };

modifier_keys그리고 내가 사용하고 있는 레이아웃 본문의 블록 앞에 태그를 추가합니다 /usr/share/xkb/symbols/fr(이것이 내가 사용하고 있는 레이아웃이므로 bepo 섹션에 있음).

  1. 대략적인 세부 단계를 따르십시오.여기그리고여기: 좀 더 정확하게 말하자면 마지막에 다음 코드를 추가했습니다..../xkb/symbols/ctrl
partial modifier_keys alphanumeric_keys
xkb_symbols "lsgt_lctrl" {
    key <LSGT> { [Control_L] };
};

(레이블이 키 맵을 가리키는지 실제 키를 가리키는지 확실하지 않기 때문에 영숫자 레이블이 여기에 있습니다. 영숫자 키인 것 같아요 LSGT. 그것도 제거해 보았습니다.)

.../xkb/rules/evdev다음 줄! option = symbols

ctrl:lsgt_lctrl = +ctrl(lsgt_lctrl)

! optionevdev.lst의 다음 줄

ctrl:lsgt_lctrl Use LSGT as left control 

옵션 에 추가한 dconf편집기 를 사용하세요['ctrl:lsgt_lctrl']xkb

그런 다음 재부팅했는데 작동하지 않았기 때문에 그 안에 있는 모든 항목 /var/lib/xkb(파일 하나만 README.compiled)을 삭제하고 다시 재부팅해 보았지만 여전히 작동하지 않았습니다.

이전 Linux 설치에서 비슷한 프로그램을 사용한 기억이 나서 혼란스럽습니다.

내 게시물을 읽어주셔서 감사합니다. 이런 포럼에서 질문을 하는 것은 이번이 처음이고 저는 Linux를 처음 접하는 사람이므로 이 작업을 잘못하고 있거나 짜증나는 경우 알려 주시기 바랍니다.

답변1

replace첫 번째 코드에 키워드를 추가하여 문제를 해결했습니다 . 지금 내가 읽고 있는 것은

partial modifier_keys alphanumeric_keys
xkb_symbols "lsgt_lctrl" {
   replace key <LSGT> { [Control_L] };
};

내 생각엔 (?) LSGT의 다른 곳에 또 다른 상충되는 정의가 있는 것 같아요.xkb

참고: 저는 처음으로 등록하지 않았기 때문에 이것이 제가 제 질문에 대답하고 있다는 것을 제대로 표시할 수 있는지, 아니면 답변이 실제로 작동하는지 알 수 없습니다.

답변2

/usr/share/X11/xkb/keycodes/evdev의 다음 변경 사항으로 비슷한 문제를 해결했습니다.

#        <LSGT> = 94;
#        <RCTL> = 105;
        <RCTL> = 94;

그 후 "\&|*"(LSGT라고 함)가 제 경우에는 오른쪽 컨트롤의 위치를 ​​차지하여 오른쪽 컨트롤 역할을 합니다. 단점은 외부 키보드에서는 이 변경 후에는 마우스 오른쪽 버튼 클릭 컨트롤이 더 이상 작동하지 않는다는 것입니다.

따라서 LSGT를 LCTL로 작동시키려면 다음을 시도하십시오.

#        <LSGT> = 94;
#        <LCTL> = 37;
        <LCTL> = 94;

답변3

실행하면 setkbdmap -print > somefile.xkb다음과 같이 확장된 매크로/지시문이 포함된 XKB 구성이 인쇄됩니다.이 스레드.

확장되지 않은 출력과 비교하면 setkbdmap -print구성 문제가 더 명확해질 수 있습니다 . 그렇게 하면 키 코드가 순서대로 나열된 파일도 제공됩니다.

구성을 살펴본 후 내 XKB 매크로/지시문이 순차적으로 확장되지 않아 io(swapcaps)my 및 행이 포함된 후 다음 행이 평가된다는 사실을 발견했습니다.ìo(intl)

    key <LVL3> {
        type= "ONE_LEVEL",
        symbols[Group1]= [ ISO_Level3_Shift ]
    };
    key <LSGT> {
        type= "FOUR_LEVEL",
        symbols[Group1]= [ backslash, bar, backslash, bar ]
    };

또한 키보드 구성(KDE 시스템 설정 모듈)으로 이동하면 레이아웃 아래에서 레이아웃 미리보기를 생성할 수 있습니다. 이 경우 xkbcomp /usr/share/X11/xkb/symbols/io $DISPLAY레이아웃을 사용하거나 구문 분석하는 것보다 미리보기가 더 나은 출력을 생성 합니다 setxkbmap -config ~/.config/me/xkb/io -print -verbose 10. 미리보기를 생성하면 이를 매핑/교체하는 키에 "< >" 기호가 표시됩니다.

아래 스크립트를 매핑 key <ESC> {[ LSGT ]}하거나 사용한 다음 추가 모드키를 얻기 위해 신청하려고 합니다. 또는 적어도 LaTeX/Julia에 대한 확장된 기호 범위를 얻으려고 합니다...replace keylevel5(lsgt_switch)

hidden partial
xkb_symbols "swapcaps" {
    key <ESC> {[ LSGT ]};
    key <CAPS> {[ Escape ]};
};

xkb_symbols "intl" {

    include "us(intl)"
    include "io(swapcaps)"
    include "level5(lsgt_switch)"

    name[Group1] = "Digimon - US (With Dead Keys)";

    key <SPCE> {[       space, underscore, nobreakspace, nobreakspace   ]};

    //key <TLDE> {[dead_grave, dead_tilde, grave, asciitilde ] };

    key <AE01> {[              exclam, 1,    exclamdown,      onesuperior ] };
    key <AE02> {[                  at, 2,   twosuperior, dead_doubleacute ] };
    key <AE03> {[          numbersign, 3, threesuperior,      dead_macron ] };
    key <AE04> {[              dollar, 4,      currency,         sterling ] };

    //// ...
};

pc104 및 pc105 키코드에 대한 참고 사항:

  • pc104 키보드에서 유일하게 누락된 키코드는 93바로 뒤에 있는 입니다 key <LSGT> = 94. 여전히 문제가 있습니다. 그러나 이 키가 거기에 정의되어 있다는 것이 이상합니다. pc104와 사이의 유일한 차이점은 pc105추가된 LSGT키이기 때문입니다.
  • $XKB/symbols/pc실제 pc105 정의를 찾을 수 없는 것 같습니다. 기호 에만 존재하는 것 같습니다 .

관련 정보