Caps Lock을 제어 키로 사용하고 다음 명령으로 구성합니다(Gnome을 실행 중입니다).
gsettings set org.gnome.desktop.input-sources xkb-options \
"['caps:ctrl_modifier']"
때때로 Control로 수정된 키를 누르면 해당 키가 자동으로 반복됩니다. 예를 들어, Ctrl-w를 입력하면 갑자기 w 키를 누른 것처럼 반복되기 시작합니다. 키업 이벤트가 누락된 것 같습니다. 다른 키를 누를 때까지 반복은 무한정 계속됩니다.
또한 Control이 수정하는 키를 누를 때 마치 "잘못된 키를 누른" 것처럼 전혀 작동하지 않는 경우도 있습니다. 방금 다시 시도했는데 효과가 있었지만 동일한 근본적인 문제의 또 다른 증상인 것 같습니다.
이 문제를 어떻게 디버그/수정할 수 있나요? 어떤 키보드 이벤트가 언제 전송되는지 확인하고 싶습니다.
고쳐 쓰다
나는 아직도 이 문제에 대한 해결책을 찾지 못했습니다(아래 답변은 유용한 정보이지만 내 문제를 해결하지 못하므로 어떻게 해야 할지 모르겠습니다).나는 xinput을 사용한다관련된 키보드 이벤트를 모니터링합니다.
press Caps
press W
, , 등 release Caps
의 키 시퀀스를 사용하여 키 반복 오류 만 재현할 수 있으므로 "롤오버"와 관련이 있는 것 같습니다 release W
(Caps를 릴리스하기 전에 W를 릴리스하는 대신).
또한 가상 콘솔이 아닌 X에서만 오류를 재현할 수 있습니다.
xkb-options
설정을 통해 설정을 지우고 gsettings
이제 /etc/X11/xorg.conf.d/00-keyboard.conf
다음에 의존합니다.
Section "InputClass"
Identifier "Keyboard catchall"
MatchIsKeyboard "on"
Option "XkbModel" "pc104"
Option "XkbLayout" "us"
Option "XkbOptions" "ctrl:nocaps"
Option "XkbVariant" ""
EndSection
가상 콘솔과 X 모두에서 작동하기 때문에 caps:ctrl_modifier
전환 했습니다 .ctrl:nocaps
그래서 아직도 해결책을 찾고 있는 중인데, 그 과정에서 적어도 뭔가를 배운 것 같은 느낌이 듭니다.
답변1
Gnome 대신 XServer에서 제어 키 동작을 설정합니다(X 대신 wayland를 사용하지 않는다고 가정).
사용setkbmap
키보드 레이아웃을 얻으세요:
setxkbmap -query
라벨이 붙은 섹션을 찾으세요
layout
.gb
영어 레이아웃 과 유사합니다 . 귀하의 상황은 다를 수 있습니다.위의 #2에서 사용한 것과 동일한 레이아웃을 사용하여 키보드 레이아웃 옵션을 수정합니다.
setxkbmap -layout gb -option ctrl:nocaps
여기 옵션은
ctrl:nocaps
Caps Lock을 제어할 수 있는 추가 키를 제공합니다. 이 변경 사항을 영구적으로 적용하려면.xinitrc
터미널을 사용하거나 터미널에서 X를 실행할 때 파일에 추가하면 됩니다. 그렇지 않으면startx
xinit
이 답변을 참조하세요Gnome에 로그인한 동안 명령을 실행하는 방법을 알아보세요.
사용xmodmap
.Xmodmap
홈 디렉터리에 다음 파일을 만듭니다.
!
! Make Caps_Lock another Control_L
!
remove Lock = Caps_Lock
keysym Caps_Lock = Control_L
add Lock = Caps_Lock
그런 다음 시작 시 다음 명령을 실행하여 이 변경 사항을 X 세션에 적용할 수 있습니다.
xmodmap ~/.Xmodmap
마음에 드는 것이 있으면 이를 레퍼토리에 추가하거나 .xinitrc
위에 링크된 것과 동일한 방법을 사용하여 영구적으로 만들 수 있습니다.
더 깊게
커널 수준에서 제어하기 위해 대소문자 변경을 사용할 수도 있습니다 loadkeys
.
여기서의 기본은 dumpkeys
기존 키 매핑을 파일에 덤프하는 것입니다. loadkeys
새로운 키맵을 로드 하는 데 사용되는 Caps Lock 매핑을 변경합니다 .
커널이 키보드 입력을 읽는 방식을 변경하므로 이러한 변경에는 루트 권한이 필요합니다. 이것은깃허브 필수사항관련 수정 및 일부 설명이 이루어졌습니다.