Google에서 이 주제를 검색했는데 많은 사람들이 제안했습니다.
setxkbmap -option ctrl:nocaps
이 줄을 내 에 넣었습니다 .bashrc
. 그러나 이 키 바인딩은 일반적으로 자동으로 비활성화됩니다. 다른 일을 하고 있을 때 이런 일이 무작위로 발생합니다. vim을 사용할 때 이것이 가장 짜증나는 일인데, 많은 키맵이 영향을 받습니다. 이전 명령을 다시 실행하려면 터미널을 열어야 합니다. 그러면 다시 비활성화될 때까지 임의의 시간 동안 작동하게 됩니다.
같은 경험을 공유하는 사람이 있나요? 이 매핑을 영구적으로 유지하는 방법은 무엇입니까?
입력 엔진을 변경할 때마다 ibus가 키맵을 재설정한다는 사실을 마침내 알게 되었습니다.
답변1
명확히 하자면, 이것은 X11에서만 작동합니다. 그렇죠?
터미널을 시작할 때마다 키가 매핑되지 않습니다. 이는 터미널 자체 구성의 일부가 아니라 X 구성의 일부입니다.
파일을 만들고 ~/.Xmodmap
다음 콘텐츠를 추가합니다.
remove Lock = Caps_Lock
keysym Caps_Lock = BackSpace
이는 CapsLock을 백스페이스에 매핑합니다.
물론 필요한 경우 컨트롤에 바인딩할 수도 있습니다.
의견에서: ibus는 입력을 변경할 때 이 구성을 재설정할 수 있습니다.
답변2
참고로 저는 이 문제를 해결하려고 노력 중이며 다른 스레드에서 솔루션을 제안했습니다. Linux Mint의 컨트롤에 Caps Lock 매핑
답변3
예, "setxkbmap -option ctrl:nocaps"가 갑자기 작동을 멈췄다는 동일한 문제가 있었습니다.
다음 명령은 키를 영구적으로 다시 매핑하고 내 노트북에서 제대로 작동합니다.
sudo setkeycodes 3a 29
스캔 코드(3a) 또는 키 코드(29)가 다른 경우 다음 방법을 사용하여 올바른 코드를 찾을 수 있습니다.
sudo evtest
그러나 어떤 이유로 USB 키보드에서는 작동하지 않습니다. 다음은 USB 키보드에 적용됩니다. https://github.com/stefansaraev/keytable
git clone https://github.com/stefansaraev/keytable.git
cd keytable/
make
sudo ./keytable -k 0x70039=29 --device /dev/input/event5
이전과 동일한 방법으로 올바른 장치, 스캔 코드(70039) 또는 키 코드(29)를 얻으십시오. 일부 참고자료: