태그 보관물: xkb

xkb

setxkbmap을 사용하여 왼쪽 Shift 및 왼쪽 컨트롤을 교체하십시오. CTRL키 를 교환 할 수

? 대신에 왼쪽 Shift및 왼쪽 CTRL키 를 교환 할 수 있습니까?setxkbmapxmodmap

편집하다

Fcitx 로 전환했습니다 . 이는 모든면에서 IBus보다 키보드 레이아웃 및 사용자 정의 키 맵으로 훨씬 잘 작동합니다. 나는 그것을 강력히 추천합니다.



답변

xmodmap더 이상 사용되지 않습니다. 실제로 xkb도구를 사용하여 수행해야합니다 .

원하는 스왑은 기본적으로 X11 파일에 포함되지 않은 것 같습니다. 직접 작성해야합니다.

http://madduck.net/docs/extending-xkb/ 페이지 를 통해 이해하고 이해하는 방법을 찾을 수있었습니다.

~/.xkb/keymap/mykbd의 출력을 넣을 파일을 작성하면 setxkbmap기본 키보드 정의가됩니다. 예 :

setxkbmap -print > ~/.xkb/keymap/mykbd

그런 다음 키 스와핑을 정의하기 위해 기호 파일을 작성하십시오. ~/.xkb/symbols/myswap

거기에 다음 줄을 넣으십시오.

partial modifier_keys
xkb_symbols "swap_l_shift_ctrl" {
    replace key <LCTL>  { [ Shift_L ] };
    replace key <LFSH> { [ Control_L ] };
};

그런 다음 ~/.xkb/keymap/mykbd파일을 편집하고 xkb_symbols추가 할 행을 변경 하십시오.

+myswap(swap_l_shift_ctrl)

마지막으로로드 할 수 있습니다 xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY( -I매개 변수에 “~”를 사용할 수 없음 ). 희귀 키에 대해서는 정의되지 않은 기호에 대해 많은 경고를 뱉을 수도 있지만 무시할 수 있습니다 (예 : 오류를 dave :로 리디렉션 2> /dev/null).

일반과 반전 된 ctrl / shift 사이를 쉽게 바꿀 수 있기를 원한다면; ~/.xkb/keymap/추가 “myswap”옵션없이 다른 파일로 작성 하고로로드하십시오 xkbcomp. 두 개의 작은 스크립트를 만들어로드 할 수 있습니다.


답변

Pablo의 솔루션 사용 과 매핑 LALT하는 몇 가지 문제가 발생 하여 옵션도 설정해야합니다 .Control_Lmodifier_map

템플릿을 복사하여 /usr/share/X11/xkb/symbols/altwin찾아서 xkb_symbols "ctrl_alt_win"다음과 같이 변경했습니다.

  • 컨트롤의 LALT 키 **
  • Alt 키를 LWIN
  • MENU 키를 Windows 키로

최종 ~/.xkb/symbols/myswap파일은 다음과 같습니다.

partial modifier_keys
xkb_symbols "swap" {
   key <MENU> {     [   Super_L     ]   };
   key <LALT> { [ Control_L, Control_L  ] };
   key <RALT> { type[Group1] = "TWO_LEVEL",
                symbols[Group1] = [ Alt_R, Meta_R ] };
   key <LWIN> { [ Alt_L, Meta_L ] };
   key <LCTL> { [ Control_L ] };
   key <RCTL> { [ Control_R ] };
   modifier_map Control { <LALT>, <LCTL>, <RCTL> };
   modifier_map Mod1 { <LWIN>, <RALT> };
   modifier_map Mod4 { <MENU> };
};

새 쉘을 열 때 경고 출력을 피하기 위해 명령에 추가 -w0했습니다 xkbcomp.

xkbcomp -w0 -I$HOME/.xkb $HOME/.xkb/keymap/mykbd $DISPLAY

** Mac과 Linux를 많이 전환 할 때 Linux에 근육 메모리의 Mac 키보드와 비슷한 두 개의 제어 키가 있습니다.


답변