다음과 같은 한국어 키보드가 있습니다.
한자( 한자)는 의 왼쪽에 위치해 있는데 space, 이는 한글을 타이핑할 때도 거의 사용하지 않는 문자인데, 내 왼손 엄지손가락에 있어 가장 중요한 공간이다.i3 창 관리자 모드 키. 이는 Alt내 코드 편집기에서 사용할 수 있도록 해제됩니다 .
내 질문예: 한자 키를 수정자 키로 바꾸는 방법은 무엇입니까?
다음을 사용하여 키를 확인했습니다 xev
.
KeyPress event, serial 32, synthetic NO, window 0x2200001,
root 0x281, subw 0x0, time 11955968, (-132,626), root:(491,646),
state 0x0, keycode 131 (keysym 0xff34, Hangul_Hanja), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 32, synthetic NO, window 0x2200001,
root 0x281, subw 0x0, time 11955968, (-132,626), root:(491,646),
state 0x20, keycode 131 (keysym 0xff34, Hangul_Hanja), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
키 코드 131 = 0x83
출력에서 xmodmap
이것이 사용 가능하다는 것을 알 수 있습니다 mod3
.
shift Shift_L (0x32), Shift_R (0x3e)
lock Caps_Lock (0x42)
control Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x40), Alt_R (0x6c), Meta_L (0xcd)
mod2 Num_Lock (0x4d)
mod3
mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf)
mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)
나는 xmodmap -e "add mod3 = Hangul_Hanja"
다음과 같은 결과를 얻으려고 노력합니다 ...
shift Shift_L (0x32), Shift_R (0x3e)
lock Caps_Lock (0x42)
control Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x40), Alt_R (0x6c), Meta_L (0xcd)
mod2 Num_Lock (0x4d)
mod3 Hangul_Hanja (0x83)
mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf)
mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)
... set $mod Mod3
i3 프로필에 추가하고 재부팅한 후 수정자 키가 없어 작동하지 않았습니다.
또한 한자 키는 일반적인 수정자 키와 다르게 작동합니다. 키를 누르고 있으면 반복적인 키 입력이 생성되는 반면 일반적인 수정자 키는 그렇지 않습니다.
집에 전문 지식을 빌려줄 수 있는 키보드 전문가가 있기를 바랍니다.
Linux Mint 18 (Cinnamon) i3 창 관리자
답변1
X11 수정자 처리는 약간 특별합니다. 어떤 키도 수정자로 선언할 수 없습니다. 수정자 설정과 키 기호 설정 간에 일관성이 있어야 합니다.
고전적인 수정자는 Shift
, Control
, 및 (각각 Alt
에는 Meta
및 와 같은 두 개의 키 기호가 있음)입니다(그리고 Hyper
약간 다르게 동작하는 Caps Lock 및 Num Lock ). 대부분의 응용 프로그램은 수정자로 사용되는 다른 키 기호와 함께 작동하지 않습니다.Super
Shift_L
Shift_R
따라서 한자 키를 수정자로 사용하려면 Hyper_L
(예를 들어) 만드십시오.
keycode 131 = Hyper_L
remove Mod4 = Hyper_L
add Mod3 = Hyper_L
이로 인해 해당 키는 더 이상 한자 키로 작동하지 않습니다. xmodmap 대신 XKB를 사용하면 두 기능을 모두 보존할 수 있는 방법이 있을 수 있지만 방법은 모르겠습니다.