Caps Lock 키를 다시 활성화하는 방법은 무엇입니까?

Caps Lock 키를 다시 활성화하는 방법은 무엇입니까?

현재 기본 키보드 레이아웃을 다음과 같이 설정하고 있습니다.

setxkbmap -layout us -variant dvorak -option ctrl:nocaps,[...]

Caps Lock 키를 비활성화하고 다른 수많은 옵션과 함께 추가 Ctrl 키로 만듭니다.

키보드 레이아웃을 전환하려면 다음을 수행하고 싶습니다.

setxkbmap -layout us -variant dvorak-l -option ctrl:swapcaps

그러나 내가 아는 한 Caps Lock 키는 다시 활성화되지 않습니다. 왼쪽 컨트롤 키와 Caps Lock 키는 모두 컨트롤 키로 유지됩니다.

전체 옵션 목록을 지울 수 있다는 것을 알고 있지만 유지 관리를 위해 옵션을 복사하여 붙여넣지는 않는 것이 좋습니다. Caps Lock을 다시 활성화하려면 어떻게 해야 합니까?

고쳐 쓰다: xev(1)를 사용한 키 입력을 보면 ctrl:nocaps는 Control_L두 키에 대해 a를 제공하는 반면 ctrl:swapcaps는 Caps Lock 키(키를 눌러 제공됨 Caps_Lock)를 "복원"하는 것처럼 보입니다. 그러나 Caps Lock LED는 켜지지도 않고 실제로 작동하지도 않습니다.

X.org 소스의 문서를 보면 xkeyboard-config/symbols/ctrl문제에 대한 힌트가 있습니다.

xkb_symbols "nocaps" {
    replace key <CAPS>  {  [ Control_L, Control_L ] };
    modifier_map  Control { <CAPS>, <LCTL> };
};
xkb_symbols "swapcaps" {
    replace key <CAPS>  {  [ Control_L ] };
    replace key <LCTL>  {  [ Caps_Lock ] };
};

후자의 옵션에는 무엇을 하든 modifier_map 줄이 없습니다.

답변1

다음 명령이 작동해야 합니다.

xmodmap -e 'keycode 0x42 = Caps_Lock'

또는

setxkbmap -option

위 명령은 기본 동작을 복원하는 데 잘 작동하며 운 좋게도 거의 필요하지 않습니다.

나는 일반적으로 다음 명령을 사용하여 Caps Lock을 Control에 다시 매핑합니다(다행히 VI/VIM은 ESC 대신 CTRL-C를 지원합니다).

setxkbmap -option ctrl:nocaps -layout gb

답변2

노력하다setxkbmap -option -layout us -variant dvorak-l -option ctrl:swapcaps

맨페이지에서:

[...] If you want to
replace all previously specified options, use the -option  flag
with an empty argument first.

아이러니하게도 여기 -option ctrl:swapcaps에 실제로 적용되는 내용이 있습니다 -option ctrl:nocaps. 행동이 바뀌는 것 같아요.

편집하다:OP가 말했듯이 그는 원했습니다피하다옵션을 지웁니다(위와 같이 수행).

/usr/share/X11/xkb/rules/xorg.lstctrl:aa_ctrl옵션 (왼쪽 하단에 있는 컨트롤)을 표시 하고 nocaps여기 이후에 Caps Lock을 재설정하는 것 같습니다.

시도해 볼 가치가 있다고 생각합니다. 이 방법이 작동하지 않는 경우를 대비해 목록( grep ctrl\:)을 보고 작동하는 다른 방법이 있는지 확인할 수도 있습니다.

이 옵션이 없으면 Caps Lock을 Caps Lock 키와 다시 연결하여 현재 키맵을 해킹하는 것이 해결책일 것 같습니다(그러나 한 줄로 이 작업을 수행할 수 있는 도구가 있다고 믿는 것 외에는 이에 대한 경험이 없습니다). ).

답변3

Caps Lock을 활성화하려면 "caps:capslock" 옵션(xkb_symbols에 "+capslock(capslock)"을 추가하도록 매핑됨)이 있습니다.

그런데 옵션이 추가되었습니다(아마도 모두 대문자: xxxxx?)앞으로기존 ctrl:xxxxx; ctrl:swapcaps는 capslock 키를 재정의하므로 이 옵션은 효과가 없습니다.

따라서 모든 옵션을 제거하고 실제로 원하는 옵션을 넣어야 합니다. 옵션은 이전 옵션의 작업을 취소할 수 없는 방식으로 존재하며 충돌하는 옵션이 있습니다(예: 두 개 이상의 옵션 재설정). 동일한 키) 순서를 정의할 수 없습니다.

관련 정보