사용setkbmap

사용setkbmap

Caps Lock을 제어 키로 사용하고 다음 명령으로 구성합니다(Gnome을 실행 중입니다).

gsettings set org.gnome.desktop.input-sources xkb-options \
  "['caps:ctrl_modifier']"

때때로 Control로 수정된 키를 누르면 해당 키가 자동으로 반복됩니다. 예를 들어, Ctrl-w를 입력하면 갑자기 w 키를 누른 것처럼 반복되기 시작합니다. 키업 이벤트가 누락된 것 같습니다. 다른 키를 누를 때까지 반복은 무한정 계속됩니다.

또한 Control이 수정하는 키를 누를 때 마치 "잘못된 키를 누른" 것처럼 전혀 작동하지 않는 경우도 있습니다. 방금 다시 시도했는데 효과가 있었지만 동일한 근본적인 문제의 또 다른 증상인 것 같습니다.

이 문제를 어떻게 디버그/수정할 수 있나요? 어떤 키보드 이벤트가 언제 전송되는지 확인하고 싶습니다.


고쳐 쓰다

나는 아직도 이 문제에 대한 해결책을 찾지 못했습니다(아래 답변은 유용한 정보이지만 내 문제를 해결하지 못하므로 어떻게 해야 할지 모르겠습니다).나는 xinput을 사용한다관련된 키보드 이벤트를 모니터링합니다.

press Capspress 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

  1. 키보드 레이아웃을 얻으세요:

    setxkbmap -query
    

    라벨이 붙은 섹션을 찾으세요 layout. gb영어 레이아웃 과 유사합니다 . 귀하의 상황은 다를 수 있습니다.

  2. 위의 #2에서 사용한 것과 동일한 레이아웃을 사용하여 키보드 레이아웃 옵션을 수정합니다.

    setxkbmap -layout gb -option ctrl:nocaps
    

    여기 옵션은 ctrl:nocapsCaps Lock을 제어할 수 있는 추가 키를 제공합니다. 이 변경 사항을 영구적으로 적용하려면 .xinitrc터미널을 사용하거나 터미널에서 X를 실행할 때 파일에 추가하면 됩니다. 그렇지 않으면startxxinit이 답변을 참조하세요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 매핑을 변경합니다 .

커널이 키보드 입력을 읽는 방식을 변경하므로 이러한 변경에는 루트 권한이 필요합니다. 이것은깃허브 필수사항관련 수정 및 일부 설명이 이루어졌습니다.

관련 정보