CapsLock 버튼을 단독으로 누르면 Esc 키 역할을 하고, 다른 키와 함께 누르면 Control 키 역할을 하도록 시스템 전체에서 CapsLock 키를 다시 매핑할 수 있습니까?
답변1
나는 아주 좋은 해결책을 찾았습니다.X 각도. 추가 정보 파일에서:
xcape는 데몬으로 실행되며 Control 키를 가로챕니다. Control 키를 단독으로 눌렀다 떼면 Esc 키 이벤트가 발생합니다.
Caps Lock 키를 Control로 다시 매핑한 경우 이 방법이 더 적합합니다. 프로그램의 향후 버전에서 이 매핑을 수행할 수 있지만 지금은 사용자가 직접 수행해야 합니다.
답변2
Vim에서 더 편안하게 입력할 수 있도록 Caps를 Escape에 매핑했습니다. 를 사용했는데 xmodmap
이것을 에 넣었습니다 ~/.Xmodmap
.
clear Lock
keycode 0x42 = Escape
적용하다: xmodmap ~/.Xmodmap
. ~/.bash_profile 같은 파일에 넣으시면 됩니다. (저는 로그인 관리자를 사용하지 않기 때문에 ~/.xinitrc에 넣었습니다.
CapsLock + [다른 키]를 매핑하려면 를 사용해 보세요 xbindkeys
.
답변3
시스템 전체에 걸쳐 키를 다시 매핑하기 위한 Linux 전용 솔루션은 간단한 udev 규칙을 작성하는 것입니다. X에 대한 종속성이 없으며 모든 터미널이나 응용 프로그램에서 실행될 수 있으며 두 파일을 복사하기만 하면 최근 Linux 설치 간에 이식 가능합니다.
2개의 파일을 작성해야 합니다. 하나는 커널에 키를 다시 매핑하도록 지시하는 udev 규칙이 포함되어 있고, 다른 하나는 필요한 실제 매핑이 포함되어 있습니다.
이 접근 방식을 사용하여 전체 키보드를 다시 매핑했습니다. 코드가 영감으로 사용될 수도 있습니다.https://github.com/10ne1/carpalx-keyboard
답변4
AskUbuntu에서 다르게 표현된 질문을 만났습니다.좋은 대답, 하지만 내 시스템에서 작동하도록 하려면 약간 수정해야 했습니다.
Louis와 Sergiy의 의견을 바탕으로 Ubuntu 16.04(Xenial)에서 작동하는 이 솔루션을 생각해냈고 이를 제가 사용하는 다른 Linux 시스템에도 적용할 예정입니다.
설치했습니다X 각도다음 코드 줄을 .profile
내 홈 디렉터리의 파일에 넣습니다.
업데이트된 방법:
다양한 디스플레이 관리자(gdm/kdm/sddm/etc.)가 이상하게 동작하고 setxbmap
일시 중지/재개 또는 잠금/잠금 해제 후에 재설정되기 때문에 옵션을 상속하고 계속 재설정하지 않는 방식으로 옵션을 설정하는 방법을 알아냈습니다. 그것. 저는 일시 중지하고 다시 시작하기 때문에 실행 중인 복사본이 너무 많아지지 않도록 해야 합니다. 이에 대한 xcape
내용은 아래의 새 스크립트에서 설명합니다.
sudo gedit /etc/default/keyboard
먼저 및 set 을 사용하여 키보드 구성을 수정한 XKBOPTIONS="ctrl:nocaps"
후 ~/.xprofile
아래 줄을 추가합니다.
ps aux | grep -i '[x]cape' && killall -9 xcape; hash xcape 2>&1 >/dev/null && xcape -e 'Control_L=Escape' -t 100 &
스크립트의 다양한 부분을 통해 시간/번거로움을 줄이고 로그인이 중단되는 것을 방지할 수 있기를 바랍니다. 먼저 이미 실행 중인 인스턴스가 있는지 확인하고 이를 종료합니다. xcape
Ctrl을 안전한 Esc에 매핑하기만 하면 되기 때문입니다. 그런 다음 해당 hash
부분은 해당 인스턴스가 설치되어 있는지 확인합니다. xcape
그렇지 않으면 로그인하려고 할 때 시스템이 중단될 수 있습니다. 모든 시작 스크립트는 깔끔하게 종료될 것으로 예상되기 때문입니다.
기존 방식:
setxkbmap -option 'caps:ctrl_modifier'; xcape -e '#66=Escape'
세르게이:
Ubuntu 14.04의 시스템 설정에 키보드 레이아웃이 없기 때문에 gnome-tweak-tool을 사용하여 Caps Lock을 Ctrl에 매핑했습니다. 그런 다음 xcape -e 'Control_L=Escape'가 작동하지 않았지만 xcape -d를 사용한 후 Caps Lock이 키코드 66을 생성하고 이를 별도로 다시 매핑하는 것을 발견했습니다. xcape -e '#66=Escape'. – Sergiy Byelozyorov 2014년 9월 4일 10:08
루이스:
이 블로그 게시물에 따르면 이 작업은 xcape만 사용하여 수행할 수 있습니다. setxkbmap -option 'caps:ctrl_modifier' xcape -e 'Caps_Lock=Escape' setxkbmap -option 'caps:ctrl_modifier' xcape -e 'Caps_Lock=Escape;Control_L =Escape;Control_R=Escape' – 루이 시모노 2015-08-04 10:06