Caps Lock 키를 세 번째 Shift 키로 만들려면 어떻게합니까?


18

Caps Lock 키를 다른 Shift 키처럼 작동하게하려면 어떻게합니까?

재 지정 또는 사용자 정의 명령 실행에 대한 많은 질문이 있습니다. 다른 Shift 키처럼 작동하기를 원합니다. 다른 키가 수행하는 작업을 변경하고 싶지 않고 그 키만 변경하고 싶습니다.

키보드 레이아웃 / 캡 잠금 키 동작이 작동하지 않습니다. CCSM에서 키를 다시 매핑하는 방법을 이해하지 못합니다.

나는 지금 영국 키보드를 사용하고 있지만 미국 키보드에서 타이핑하는 법을 배웠습니다. 왼쪽의 작은 Shift 키는 DRIVING ME NUTS입니다.



1
@ David-yourfriend OP는 구체적으로 xmodmap작동하지 않는다고 말했습니다 .
TheWanderer

1
xkb에서 이것은 특정 키 조합을 기호가 아닌 동작으로 변환하는 호환성 맵과 관련이있는 것으로 보입니다. 현재 사용 가능한 것보다 더 많은 연구 및 테스트 시간이 필요합니다. 내가 기회를 얻는다면 나는 이것에 대해 더 깊이 파고 들지 않을 것이다. 아마도이 빵 부스러기는 다른 누군가를 올바른 방향으로 이끌 것이다.
Geek

답변:


13

@ Zacharee1 답변에서 확장 :

백업하다 cp /usr/share/X11/xkb/symbols/pc ~/pckeybak

그런 다음 gksu gedit /usr/share/X11/xkb/symbols/pc또는 좋아하는 편집기 로 편집 하십시오.

다음과 같은 줄 (22)을 찾으십시오.

key <CAPS> { [ Caps_Lock ] };

로 변경

key <CAPS> { [ Shift_L ] };

그리고 (36) 줄은 다음과 같습니다.

modifier_map Lock { Caps_Lock };

로 변경

//modifier_map Lock { Caps_Lock }; (실제로 잠금을 비활성화하면 주석 처리해야 함)

테스트 결과 Num Lock여전히 여전히 예상대로 작동합니다. 추가 테스트 결과 16.04에서 수정되지 않은 시스템에서도 키보드 표시등이 약간 난독 한 것으로 나타납니다. 로그인시 스크롤 잠금 표시기가 켜지지 만 스크롤 잠금이 해제되고 Num Lock 표시등이 꺼지지 만 Num Lock이 켜집니다. 왼쪽 Ctrl키를 두드리면 이 문제가 해결되는 것 같으며 KVM 스위치 사용과 관련이 있는지 확실하지 않습니다.

참고 : 추가 테스트에 따르면 KVM 스위치가 없어도 NumLock 표시등이 벗겨 지고 NumLock 과 다시 동기화하려면 두 번 두 드려야합니다. 항상 켜두면 빛을 무시하거나 방해 할 수 있습니다. 다시 동기화하기 위해 두 번. 이것이 일어나는 이유는 아마도 새로운 질문의 기초가 될 것입니다 ...

원래 문제에 대한 또 다른 간단한 해결책은 저렴한 미국 키보드 를 얻고 미국 키보드 매핑을 사용하는 것입니다.

출처 : @ Zacharee1 답변 및 분석 /usr/share/X11/xkb/symbols/pc, 시행 착오 테스트


그래서 당신은 그 라인 36을 비활성화해야합니까? 으로 변경하면 Shift_L나를 위해 capslock을 완전히 비활성화 할 수 있습니다.
TheWanderer

@ Zacharee1 Tom Brossman이 귀하의 게시물에 대한 의견에서 언급 한 Numlock에 미치는 영향의 원인 일 수 있다고 생각했습니다.
Geek

흠. 그럴 수 있습니다. Zanna가 영국 보드를 가지고 있기 때문에 Zanna가 VM으로 테스트 할 수 있는지 확인하고 있습니다.
TheWanderer

@ Zacharee1 테스트에 사용할 수있는 하드웨어가 없기 때문에 멋지다. 완전한 테스트가 불가능한 경우에는 종종 로직에 의존한다.
Geek

그것은 마침내 테스트하고 작동했습니다 (적어도 현재). 키보드의 Num Lock 표시등이 꺼져 있지만 로그인 할 때 기본적으로 여분의 숫자 키가 활성화되어 있으며 그 이후의 숫자입니다. 감사!
Tom Brossman

10

CapsLock 키를 변경하여 "a"를 생성 하는 방법을 조정하여 얻을 수 있습니까? (예를 들어).

Lock에서 (= Caps Lock) 수정자를 제거 Caps Lock하고이 키가 키 Shift_L심을 전송한다고 선언하십시오 .

remove Lock = Caps_Lock
keysym Caps_Lock = Shift_L

또는 Lock수정자를 제거하고 수정자를 추가 할 수 있습니다 Shift.

remove Lock = Caps_Lock
add Shift = Caps_Lock

어느 쪽이든,이 줄들은 파일에 들어갑니다 ~/.Xmodmap. 로로드하여 테스트하십시오 xmodmap ~/.Xmodmap. 기본 환경에서 로그인 할 때 (적어도 Gnome 시절) 파일을 자동으로 읽습니다.


2
완벽했습니다. 내 홈 디렉토리에 '.Xmodmap'이라는 새 빈 문서를 만들고 첫 번째 예제를 붙여 넣었습니다. 그런 다음 터미널에 'xmodmap ~ / .Xmodmap'을 입력하여 즉시 적용했습니다. 이것들은 모두 링크 된 답변에 설명되어 있습니다. 감사합니다.
Tom Brossman

두 번째 명령 세트는 저에게 효과적이지 않지만 첫 번째 명령은 훌륭합니다. Caps Lock을 눌러도 키보드 표시등이 켜지지 않아 잠복 OCD가 트리거되지 않습니다.
Waldir Leoncio

좋은 대답, 질! 답변에 추가하기 위해 하나의 단일 명령으로 수행 할 수도 있습니다. xmodmap -e "clear Lock" -e "keysym Caps_Lock = Shift_L" 과 함께 실행 취소 setxkbmap -option 하면 ~/.Xmodmap파일에 쓰지 않지만 필요할 때 사용할 수 있으며 시작 응용 프로그램에 추가 할 수 있습니다. 아주 좋은 답변입니다!
Sergiy Kolodyazhnyy

7

실패한 대답에 대한 이전의 시도를 무시하면서 Capslock을 완전히 왼쪽으로 바꾸는 것을 발견했습니다. 토글 링하지 않고, 그것이 영속적이며 매우 간단하다고 생각합니다.

먼저 변경 방법을 소개하기 전에 백업을 만드는 것이 좋습니다.

운영 sudo cp /usr/share/X11/xkb/symbols/pc ~/pckeybak

백업이 완료되었으므로 편집을 시작하겠습니다.

좋아하는 텍스트 편집기를 사용하여이 파일을 루트로 편집하십시오.

/usr/share/X11/xkb/symbols/pc

다음과 같은 세그먼트를 찾으십시오 (제 22 줄 상단에 있음).

key  <TAB> {    [ Tab,  ISO_Left_Tab    ]   };
key <RTRN> {    [ Return                ]   };

key <CAPS> {    [ Caps_lock             ]   };
key <NMLK> {    [ Num_Lock              ]   };

편집하다

key <CAPS>  {   [ Caps_lock             ]   };

되려고

key <CAPS> {    [ Shift_L, Caps_Lock    ]   };

대신에. ( Caps_LockShift_L,는 불필요 할 수 있습니다.)

디스플레이 관리자 (일반적으로 sudo service lightdm restart)를 다시 시작 하면 capslock이 왼쪽으로 이동합니다. ( 참고 : 테스트 시스템은 그놈을 사용하므로 다시 시작해야 gdm했지만 폴백 TTY에서 이상한 깜박임이 발생 하여 다시 시작 gdm하지 않았습니다. 완전히 재부팅해야했습니다.)

이것은 실제로 테스트 할 수 있었고 작동하는지 확인할 수 있습니다.

Ubuntu 13.04의 영구 xmodmap에서 채택


고맙지 만, 이것은 내가 영구적으로 남겨둔 Num Lock을 방해합니다. 초기 문제 해결에서 Caps_lock> Shift_L을 변경하면 /usr/share/X11/xkb/symbols/capslockNum Lock이 방해되었습니다. 16.04와 다른 점이 있습니다. 예를 들어 부팅 할 때 Num Lock 표시등이 켜져 있지만 이제 LightDM 로그인시 꺼집니다. 솔루션을 테스트 할 때 Caps Lock이 Shift로 변경되지만 Caps Lock을 처음 누르면 Num Lock이 꺼지고 Num Lock TWICE를 눌러 다시 켜야합니다 (처음에만). 기괴한. 그래도 도움을 주셔서 감사합니다.
Tom Brossman

아마도 "16.04에서 Caps Lock이 Num Lock과의 간섭을 다시 매핑하는 것을 방지하는 방법"이라는 새로운 질문을해야할까요? 근데 여기서 근본 원인을 찾고 싶습니다. 또는 키보드를 열고 물리적으로 수정해야 할 때입니다.
Tom Brossman

이상 하네. 실행하면 numlock이 다시 작동합니까 xkbset nullify lock?
TheWanderer

@ TomBrossman 이것이 당신을 위해 아무것도 바뀌는 지 모르겠지만 그것은 저에게 효과적입니다. 그냥 Shift_L넣지 말고 넣습니다 Shift_L, Caps_Lock. 괄호가 정렬되어 있는지 확인하십시오.
TheWanderer

1
@TomBrossman 위험하지 않은 경우 sudo를 사용하고 싶습니다. 파일을 편집 할 때 시프트의 L은 ​​대문자 였고 캡도 잠겼습니다. 기묘한. NumLock도 나에게 잘 작동하기 때문에 이상합니다. 이 모든 것이 이상합니다 : p
TheWanderer

3

14.04의 경우

원 라이너 :

xmodmap -e 'keycode 66=Shift_L'

그러나 예기치 않은 경우 66올바른 키 코드가 아니며 먼저 xev콘솔에서 실행하고을 누릅니다 CapsLock. 그러면 다음과 같은 것이 보일 것입니다 :

KeyPress event, serial 27, synthetic NO, window 0x1200001,
    root 0x101, subw 0x0, time 6417361, (340,373), root:(342,393),
    state 0x0, keycode XX (keysym 0x0207, Caps_Lock), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

올바른 키 코드는에 표시된 키 코드입니다 XX.


1
현상금 메시지를보십시오 : Xmodmap trick no longer works and xkb handles this now..
TheWanderer

어머! 16.04 때문입니까? 내 14.04에서 작동합니다. 현상금 설명이 지정되지 않은 것 같습니다.

나는 현상금을 만들지 않았으므로 실제로 알지 못합니다.
TheWanderer

죄송합니다. 새로 설치 한 16.04입니다. 왼쪽 또는 오른쪽 Shift 키는 괜찮을 것입니다. 질문에 인접하여 왼쪽 xev키를 선택하여 다른 키로 간주합니다.
Tom Brossman
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.