Arch Linux에서 Caps Lock 키를 Esc 키로 매핑하는 방법


23

내 OS는 Arch Linux amd64, Gnome ENV입니다.

아치 리눅스에서 Caps Lock키를 Esc(이스케이프)에 매핑하고 싶습니다 . 나는 명령을 실행 :

xmodmap -e 'clear Lock' -e 'keycode 0x42 = Escape'

잘 작동하지만 잠시 후 Caps Lock 키가 다시 작동합니다. 그리고 명령을 다시 실행해야합니다.

나는이 솔루션이 1 년 전에 잘 작동했다고 확신합니다. 내 문제가 뭐야? 아치 리눅스 OS에서 Caps Lock 키를 Escape 키로 영원히 매핑하도록 도와 줄 수 있습니까?

답변:


47

다음 중 하나 (복잡성 증가) :

  1. setxkbmap키를 다시 매핑하는 데 사용 합니다 (데몬이 필요하지 않으며 데스크탑 환경 또는 창 관리자와 무관합니다). 전과 명령을 추가하는 것을 잊지 마십시오 exec gnome-session당신의 (또는 유사) 라인 ~/.xinitrc또는 ~/.xsession:

    setxkbmap -option caps:escape
    

setxkbmapextra / xorg-setxkbmap 패키지에서 찾을 수 있습니다 .

  1. dconf-editororg.gnome.desktop.input-sources.xkb-optionscaps:escape위에서 언급 한 필드에 추가하십시오 .
  2. gnome-session-settings → 시작 프로그램 → 추가 → 이름 = 이탈하기 위해 캡 잠금 재 맵핑, command =setxkbmap -option caps:escape
  3. 사용자 정의 키보드 레이아웃 생성

참고로, 와에 대한 grep ping /usr/share/X11/xkb/rules을 통해 XKB 규칙을 얻었습니다 .capsesc


2
dconf 방법은 완벽하게 감사했습니다!
Keith Smiley

고마워요 2. 나는 그 정보를 오랫동안 찾고있었습니다. 아니요 명령 줄에서 다음을 통해 설정할 수 없습니다.gsettings org.gnome.desktop.input-sources xkb-options ['caps:none', 'numpad:pc', 'numpad:mac']
Oliver Jan Krylow

아니오에 관해서. 1 : 두 개의 이스케이프 키가 아닌 교환하려는 경우을 실행할 수 있습니다 setxkbmap -option caps:swapescape.
comfreak

5

에서 사용하기 X위해 Arch Wiki Gnome 페이지에는 XkbOptions사용하여 키보드수정하는 지침 이 있습니다 .

dconf-editor를 사용하여 org.gnome.desktop.input-sources.xkb-options라는 키로 이동하여 원하는 XkbOptions (예 : 'caps : swapescape')를 목록에 추가하십시오.

콘솔 에서 동일한 효과를위한 사용자 정의 키맵 을 만들 수 있습니다 . 위해 필요한 변화와 개인 키 맵을 작성 CapsLock하고 Escape/usr/share/kbd/keymaps/i386/qwerty/yourmap다음 tar그와의 라인을 포함 /etc/vconsole.conf호출하기를 :

KEYMAP=yourmap

3

Xorg.conf

파일을 편집하여이 작업을 수행 할 수 있습니다 /etc/X11/xorg.conf.d/00-keyboard.conf.

예제 파일 :

Section "InputClass"
        Identifier      "system-keyboard"
        MatchIsKeyboard     "on"
        Option          "XkbLayout" "us"
        Option          "XkbModel"  "pc104"
        Option          "XkbOptions" "caps:swapescape"
EndSection  

예를 들어 caps:swapcaps,terminate:ctrl_alt_bkspesc와 caps를 바꾸고를 사용 하여 X를 강제 종료 할 수 있도록 여러 XkbOptions를 지정할 수 있습니다 CtrlAlt Backspace. 이에 대한 자세한 정보는에서 찾을 수 있습니다 man xkeyboard-config.

GUI

그놈 조정 도구 (gnome-tweak-tool 패키지)를 사용할 수도 있습니다. 를 클릭 Typing한 다음 Ctrl position메뉴 에서 원하는 것을 선택 하십시오 (아래 이미지 참조).

여기에 이미지 설명을 입력하십시오


2

xmodmap을 사용할 수 있습니다. 당신의 ~/.Xmodmap:

remove Lock = Caps_Lock
keysym Escape = Caps_Lock
keysym Caps_Lock = Escape
add Lock = Caps_Lock

(X를 시작할 때을 사용해야합니다 ~/.Xmodmap)


이것은 정답, 불가역 론적, 데스크탑 불가지론 적 대답입니다.
dotancohen

내가 이것을 넣을 때 ~/.Xmodmap아무 일도 일어나지 않습니다 :(
Jan Warchoł

당신의 라인 xmodmap ~/.Xmodmap을 넣어 ~/.xinitrc!
uzsolt

이것을 넣고 ~/.Xmodmap실행 xmodmap ~/.Xmodmap하면 오류가 발생합니다.xmodmap: .Xmodmap:1: bad remove modifier name 'lock=caps_lock', not allowed xmodmap: .Xmodmap:2: bad keysym target key symbol 'Escape=Caps_Lock' xmodmap: .Xmodmap:3: bad keysym target key symbol 'Caps_Lock=Escape' xmodmap: .Xmodmap:4: bad add modifier name 'lock=caps_lock', not allowed xmodmap: 4 errors encountered, aborting
comfreak

등호 주위에 공백이 필요합니다. 나는 대답을 수정했다.
uzsolt

0

! 위의 답변이 효과가없는 이유를 모르겠습니다. 여기 나를 위해 일하는 것이 있습니다. ~ / .Xmodmap에서

! 66 is the keycode of Caps_Lock
clear    Lock
keycode  66 = Escape 

그리고

$ xmodmap ~/.Xmodmap

Fedora와 비 Gnome 창 관리자를 사용하고 있습니다. HTH


0

파일 /etc/X11/xorg.conf.d/00-keyboard.conf을 사용하여 자동 생성 할 수도 있습니다 systemd-localed. 다음 명령을 사용하십시오.

localectl set-x11-keymap us "" "" caps:escape

또는 다른 유용한 옵션을 포함하여 :

localectl set-x11-keymap us,de "" "" caps:escape,grp:alt_caps_toggle,grp_led:caps,lv3:ralt_switch_multikey,terminate:ctrl_alt_bksp,eurosign:e,rupeesign:4

빠른 설명 :

  • CapsLk 기능 Esc
  • 두 개의 키보드 레이아웃을 전환합니다 us/ deAlt+CapsLk
  • CapsLk LED 는 활성화 된 레이아웃을 나타냅니다
  • 오른쪽 Alt ( RAlt)는 "멀티 키"입니다 ( 키 작성 참조 ).
    • RAlt+ e생성
    • RAlt+ 4생성 (방법과 유사 Shift+가 4생성 $)
  • Ctrl+ Alt+ Backspace명 X
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.