emacs를 사용할 수 있도록 키보드를 다시 매핑하려고합니다. 인체 공학적 키보드는 단일 Control 키를 격리 된 4 키 섬에 왼쪽으로 놓습니다.
OS는 데비안 스퀴즈입니다.
다음은 공급하려고하는 줄입니다. xmodmap
~ / .Xmodmap 파일에 넣습니다.
명확한 제어 클리어 모드 1 ! Alt 키는 키보드에서 '옵션'으로 표시됩니다. ! xev를 사용하면 Alt_L 및 Alt_R keysym을 각각 보내는 것으로 표시됩니다. keysym Alt_L = Control_L keysym Alt_R = Control_R ! Super_L 및 Super_R 키는 Windows 키입니다. keysym Super_L = Alt_L keysym Super_R = Alt_R 제어 추가 = Control_L Control_R Mod1 추가 = Alt_L Alt_R
내 목표는 내 옵션 (일명 Alt) 키를 제어 키처럼 동작시키고 내 Windows (일명 슈퍼) 키는처럼 동작하게하는 것 Alt입니다.
다음은 해당 키에 대해 xev가 출력 한 키 코드 및 키 ms입니다. 내 키보드 (Goldtouch 인체 공학적 키보드)에는 하나의 제어 키만 있습니다.
키 코드 37 (keysym 0xffe3, Control_L) 키 코드 64 (키심 0xffe9, Alt_L) 키 코드 133 (keysym 0xffeb, Super_L) 키 코드 134 (키심 0xffec, Super_R) 키 코드 108 (키심 0xffea, Alt_R)
실행 중에 xev가 표시하는 내용은 다음과 같습니다. xmodmap .Xmodmap
MappingNotify 이벤트, 시리얼 34, 합성 NO, 윈도우 0x0, 요청 매핑 키보드, first_keycode 204, 개수 1 MappingNotify 이벤트, 시리얼 34, 합성 NO, 윈도우 0x0, 요청 매핑 키보드, first_keycode 64, 카운트 1 MappingNotify 이벤트, 시리얼 34, 합성 NO, 윈도우 0x0, 요청 매핑 키보드, first_keycode 108, 카운트 1 MappingNotify 이벤트, 시리얼 34, 합성 NO, 윈도우 0x0, 요청 매핑 키보드, first_keycode 206, 개수 1 MappingNotify 이벤트, 시리얼 34, 합성 NO, 윈도우 0x0, 요청 매핑 키보드, first_keycode 133, 카운트 1 MappingNotify 이벤트, 시리얼 34, 합성 NO, 윈도우 0x0, 요청 매핑 키보드, first_keycode 134, 카운트 1
그리고 여기에 의해 반환 된 오류가 있습니다 xmodmap
:
X 요청 실패 오류 : BadValue (정수 매개 변수가 작동 범위를 벗어남) 실패한 요청의 주요 opcode : 118 (X_SetModifierMapping) 실패한 요청 값 : 0x17 실패한 요청의 일련 번호 : 17 출력 스트림의 현재 일련 번호 : 17
이 문제를 해결하는 방법에 대한 제안 사항이 있습니까?
답변
이것은 이미 데비안 버그 # 564327 , 데비안 버그 # 565279 , 우분투 버그 # 524774 및 FreeDesktop 버그 20145로보 고 되었습니다 . FreeDesktop 버그 토론에 첨부 된 소스 패치가 있습니다. 특히 우분투 버그 토론의 여러 해결 방법 제안이 있습니다 의 .Xmodmap
해결 방법은 .
답변
Giles와 연결된 해결 방법을 살펴보면 이것이 나를 위해 일한 것입니다.
clear Mod1
clear Mod4
keycode 204 = NoSymbol NoSymbol NoSymbol NoSymbol
keycode 206 = NoSymbol NoSymbol NoSymbol NoSymbol
keycode 64 = Control_L Control_L Control_L Control_L
keycode 133 = Alt_L Alt_L Alt_L Alt_L
keycode 134 = Alt_R Alt_R Alt_R Alt_R
keycode 108 = Control_R Control_R Control_R Control_R
add Control = Control_L Control_R
add Mod1 = Alt_L Alt_R
내 옵션 키는 이제 Control 키와 같은 기능을하고 Windows 키는 Alt 키와 같은 기능을합니다.
답변
다른 수정 자 키에 이미 추가 된 수정 자에 키 심을 추가하려고하면 문제가 발생합니다. 수정 자에 키 심을 추가하면 키심과 동반되는 다른 모든 키 심도 해당 수정 자에 추가된다는 것을 아는 것이 중요합니다.
예를 들면 다음과 같습니다.
clear mod5
add mod5 = ISO_Level3_Shift Mode_switch
발생할 수 있습니다
mod5 backslash (0x33), Caps_Lock (0x42), ISO_Level3_Shift (0x5c), Mode_switch (0xcb)
당신은 같은 것을 가지고 있기 때문에
keycode 66 = Caps_Lock NoSymbol ISO_Level3_Shift
~ / .Xmodmap에서 (를 통해 현재 키 코드와 키심 매핑을 봅니다 xmodmap -pke
)
다음과 같은 작업을 시도 할 때 문제가되는 BadValue 오류가 발생합니다.
add lock = Caps_Lock
Caps_Lock이 이미 mod5 수정 자에 추가 되었기 때문입니다.
답변
이것은 실제로 귀하의 질문에 대답하지는 않지만 귀하의 문제에 대한 또 다른 해결책입니다. “InputDevice”섹션에 다음을 삽입하여 xorg.conf를 편집하십시오.
Option "XkbOptions" "ctrl:swapcaps"