[unix] Emacs 및 Openbox로 작업 할 때 키맵 문제

나는 Apple 키보드를 가지고 있으며 Emacs로 작업 할 때 mod-4키를 Space막대 왼쪽의 첫 번째 키로 만들기 위해 키를 다시 매핑해야했습니다 . 아래 스크립트는 dwm 창 관리자를 사용할 때 제대로 작동했지만 Openbox로 전환 한 후 옵션과 명령 키 사이에서 키 코드를 바꾸는 대신 두 키가 모두 같은 일을한다는 것을 알았습니다.

내가 알았던 한 가지 이상한 점은 실행을 클릭 showkey하고 옵션 및 명령 키를 각각 누를 때 새로운 설정에 관한 것으로 56과 125를 얻지 만 64와 64 대신 아래 스크립트에 삽입하면 전혀 작동하지 않습니다. 133.

스크립트가 작동 할 때까지 계속 조정하여 훨씬 더 나은 방법이있을 수 있도록 아래에서 스크립트를 작성했음을 인정해야합니다.

.xmodmap

# switch alt and command...the switch is not being done properly
xmodmap -e "keycode 64 = Alt_L"
xmodmap -e "keycode 133 = Meta_L"

# remap of mod 4
xmodmap -e "clear Mod4"
xmodmap -e "add Mod4 = Super_L"

최신 정보

나는 이전 키보드 설정에 익숙해졌고 그것을 조정하려고 포기했습니다. 최근 다시 시작이 후 불행하게도 CapsLockCtrl더 이상 그래서 여기에 일을 다시 생각하지 않습니다.

이번에는 위에서 사용한 매핑 대신에 xmodmap -pke > ~/.xmod키를 실행 하고 대신 조정했습니다 (훨씬 더 쉬움).

그러나 상황이 여전히 옳지 않습니다. 명령이 실행될 CapsLock때를 제외하고 는 여전히 정상으로 작동하고 xev올바른 맵핑을 표시하는 것으로 보이는 다음을 리턴합니다.

# caplock
KeyRelease event, serial 40, synthetic NO, window 0x2200001,
root 0x156, subw 0x0, time 4858000, (57,-31), root:(426,402),
state 0x2, keycode 66 (keysym 0xffe3, Control_L), same_screen YES,
XKeysymToKeycode returns keycode: 37
XLookupString gives 0 bytes:
XFilterEvent returns: False

# ctrl-L
KeyRelease event, serial 40, synthetic NO, window 0x2200001,
root 0x156, subw 0x0, time 4805947, (686,148), root:(1055,581),
state 0x4, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False

# Alt-L
KeyPress event, serial 40, synthetic NO, window 0x2200001,
root 0x156, subw 0x0, time 4555825, (-158,-649), root:(959,133),
state 0x0, keycode 64 (keysym 0xffeb, Super_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False

# Super-L
KeyRelease event, serial 40, synthetic NO, window 0x2200001,
root 0x156, subw 0x0, time 4920564, (-63,169), root:(306,602),
state 0x40, keycode 133 (keysym 0xffe9, Alt_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False



답변

당신은 아마 당신의 시작 부분에 다음을 배치해야합니다 ~/.xmod

remove Lock = Caps_Lock
remove Control = Control_L
remove Mod1 = Alt_L Meta_L
remove Mod4 = Super_L Hyper_L

그리고 하단에 다음 ~/.xmod

add Control = Control_L
add Mod1 = Alt_L Meta_L
add Mod4 = Super_L Hyper_L

이 키의 수정 자 특성을 인식하도록 시스템을 업데이트합니다.


답변