X11에서 "Caps Lock" 키를 "Ctrl" 키로 다시 매핑

X11에서 "Caps Lock" 키를 "Ctrl" 키로 다시 매핑

Ctrl- N/ -를 및 키 에 Ctrl다시 매핑 하고 싶습니다 . 나는 이것을 찾았다PUpDown우편 엽서그리고 다음과 같이 했습니다:

! add Mode_switch
keycode 66 = NoSymbol NoSymbol
keycode 66 = Mode_switch

keycode 57 = n N Down
keycode 33 = p P Up

이것은 실제로 작동합니다. 하지만 문제는 이렇습니다. 저는 실제로 그렇게 Caps Lock되고 싶고 Ctrl그렇게 하고 싶습니다. 방법을 찾을 수 없는 것 같습니다.

답변1

마지막 두 줄에서 Ctrl+N과 Ctrl+P를 다시 매핑하는 것이 좋습니다. 문제는 Caps_Lock 버튼(10진수 키코드 66 또는 16진수 0x42)을 다시 매핑하는 것입니다.

Caps Lock도 그 중 하나입니다.수정자키, Shift 및 Ctrl(Ctrl)도 있습니다. X.org는 익숙한 키 매핑뿐만 아니라 수정자 맵도 유지 관리합니다. xmodmap -pm현재 수정자 그래프가 표시됩니다. 아래에 설명된 대로 해당 매핑과 키맵을 업데이트해야 합니다.

(Caps) Lock 수정자는 명시적으로 지정하지 않는 한 다른 목적으로 물리적 키를 해제하지 않고 대문자 잠금의 특징적인 동작을 제공합니다. 개인적으로 Caps Lock 키를 열 때 항상 드라이버를 사용하는데 귀찮아서 clear Lock.

remove MODIFIERNAME = KEYSYMNAME ...(또한 사람들이 잠금 바인딩을 및 로 둘러싸서 변경을 활성화하는 것을 보았습니다 add MODIFIER = KEYSYMNAME. man xmodmap자세한 내용을 참조하십시오.)

clear Lock
keycode 66 = Control_L
add Control = Control_L

Lock 수정자에게 Caps_Lock 키를 해제하라고 지시한 후 keycode 66해당 키(코드 조각의 2번째 줄)를 Ctrl 키 중 하나로 다시 매핑할 수 있습니다. 이 경우 왼쪽에 있는 키를 선택했지만 _L그렇지 않습니다. 중요한. 이제 Caps_Lock 키는 Ctrl 키인 것으로 "인식"하지만 수정자 테이블은 아직 우리가 이 키를 수정자로 사용하려는지 알지 못합니다.

내 목록의 마지막 줄에서는 Control_L이 새로운 Control 수정자임을 선언합니다.행동Ctrl 키와 같습니다. 수정자 매핑 전/후 비교를 확인하세요( xmodmap -pm아래에서):

이전: Caps_Lock 키는 Lock 수정자에 속했습니다. 앞으로:Caps_Lock 키는 Lock 수정자에 속합니다.

이후: 물리적 Caps_Lock 키(66/0x42)를 식별하는 키코드는 이제 추가 왼쪽 Control 키로 식별되고 여전히 Caps_Lock의 원래 키코드를 갖고 있으며 이제 수정자 맵의 Lock 수정자에서 Control 수정자로 이동되었습니다. 원래의 왼쪽 컨트롤도 그대로 유지됩니다. 뒤쪽에:물리적 Caps_Lock 키(66/0x42)를 식별하는 키코드는 이제 추가 왼쪽 Ctrl 키로 식별되고 여전히 Caps_Lock의 원래 키코드를 갖고 있으며 이제 수정자 맵의 Lock 수정자에서 Control 수정자로 이동되었습니다. 원래의 왼쪽 컨트롤도 그대로 유지됩니다.

관련 정보