xmodmap에서 Ctrl과 대문자를 바꾼 후 다중 수정자 조합에 대해 Ctrl이 제대로 작동하도록 하려면 어떻게 해야 합니까?

xmodmap에서 Ctrl과 대문자를 바꾼 후 다중 수정자 조합에 대해 Ctrl이 제대로 작동하도록 하려면 어떻게 해야 합니까?

나는 교체 Left Ctrl하고 Caps Lock~/.Xmodmap을 생성하여

keycode 66 = Control_L
keycode 37 = Caps_Lock
clear Lock
clear Control
add Lock    = Caps_Lock
add Control = Control_L Control_R

그런 다음 실행 중입니다 $ xmodmap ~/.Xmodmap. 키를 누르면 Left Ctrl예상대로 작동하고 Caps Lock. 키를 누르는 것은 Caps Lock일반적으로 Ctrl+ 와 같은 간단한 단축키에 작동합니다.N.

그러나 여러 수정자 키가 필요한 경우(예: Alt+ Ctrl+ I) 키를 먼저 누른 경우에만 작동합니다 Alt. 키를 먼저 누르면 Caps Lock아무런 효과가 없습니다.

을 사용하여 키보드 레이아웃을 재설정할 수 $ setxkbmap -layout us있으며 위의 단축키가 제대로 작동합니다. 다시 실행해도 $ xmodmap ~/.Xmodmap같은 문제가 발생합니다.

또한 단일 수정자 조합의 경우에도 등록하려면 Caps Lock바닐라 키를 사용했던 것보다 훨씬 더 오랫동안 키를 누르고 있어야 한다는 것을 알았습니다 . Ctrl아마도 0.01초 정도일 것입니다. 그러나 잘못된 신호가 10번에 한 번 전송된다는 것은 충분히 눈에 띄는 수준입니다.

또한 을 교체 Ctrl하여 Caps Lock사용 하면 $ setxkbmap -layout us -option 'ctrl:swapcaps'더 이상 여러 수정자에 대한 문제를 알 수 없습니다. 그러나 곧 새 키보드를 받게 되므로 Ctrl다른 키로 바꿔야 하므로 xmodmap 솔루션으로 문제를 해결하고 싶습니다.

Caps Lock=EDIT= 다른 키보드(Das Keyboard)를 사용해 보았는데 제가 사용한 것보다 몇 초 동안 길게 눌러야 하는 두 번째 문제는 Ctrl아마도 원래 키보드(알루미늄 Apple 유선 키보드)의 하드웨어 문제인 것 같습니다. . 그러나 여러 수정자에 대한 첫 번째 문제는 여전히 존재합니다.

=EDIT= xev에서 다양한 키 입력을 테스트했습니다. 키를 Alt누른 상태에서 누르면 를 누르지 않을 때 와 반대로 가 Caps Lock발생합니다 .keycode 66 (keysym 0x0, NoSymbol)keycode 66 (keysym 0xffe3, Control_L)Alt

답변1

분명히 위의 xmodmap 코드는 다음과 같습니다.~ 아니다Ctrl+ L와 키를 바꾸는 것으로 충분합니다 Caps Lock.

keycode 66 = Control_L

해야한다

keycode 66 = Control_L Control_L

Ctrl다른 수정자 다음에 를 눌렀을 때 올바른 기능을 허용합니다 . 이 솔루션에 대한 좋은 참고 자료를 찾을 수 없지만보기에두 번째 항목은 Shift+ 와 관련이 있습니다 Key. 여기서 왜 Alt+ 에도 적용되는 것 같은지 잘 모르겠습니다 Key.

(또한 FWIW, 다른 출처에서는 링크에 언급된 6개가 아닌 최대 8개의 열이 있다고 명시합니다.)

관련 정보