제어 및 탈출을 위해 캡 잠금 장치 다시 매핑 (일반적인 방법은 아님)


27

xmodmap을 사용하여 Caps 잠금 키를 다시 매핑하여 Control 키 또는 Esc 키로 작동하는 방법을 알고 있습니다. 다음과 같이 두 기능을 결합하고 싶습니다.

Caps lock 키를 눌렀다가 놓으면 Escape를 보냅니다. Caps lock을 누른 상태에서 다른 키 (예 : A)를 누르면 Control-A가 전송됩니다.

xkb, xmodmap 및 X에서 Caps lock이 이런 식으로 작동하도록하는 다른 조합이 있습니까?

Macbook Air 3,1에서 Ubuntu Precise를 사용하고 있습니다.

답변:


-2

당신은 첫 번째 (매핑 할 수있는 Caps Lock대상을 Esc)하지만 당신은 두 번째를 할 수 없습니다.

간단한 설명 : Caps Lock 눌렀을 때 무언가를하도록 설계되지 않았습니다.

정교한 설명 : 여러 유형의 키가 있습니다. 둘 중 하나는 수정 자 키잠금 키 입니다.

Caps LockA는 잠금 키 와 같은 키를하면서 Ctrl, Alt그리고 Shift있습니다 수정 키 .

이름에서 Modifier Keys 는 다음에 누른 키의 기능을 수정하고 Lock Keys 는 특정 기능을 켜거나 끄는 토글 스위치 역할을합니다.

때문에 이제 Caps Lock A는 잠금 키 , 당신은이처럼 행동 할 수 없습니다 수정 키 하나에 매핑하지 않고. Caps Lock그 자체로는 수정 자 키 기능을 수행 할 수 없습니다 .


X가 내가 원하는 것을 수행하도록 설계되지 않았 음을 확인해 주셔서 감사합니다. X 전문가가 작동하도록 무언가를 해킹하고 싶다면 저에게 연락하십시오.
user372737

4
아래의 받아 들일 수없는 대답으로, 확실히 xcape 또는 At-Home-Modifier와 같은 수많은 유틸리티를 사용하여 두 번째 부분을 수행 할 수 있습니다.
Sparhawk

34

나는 Mac 에서이 설정을 가지고 있으며 운없이 우분투에 대한 방법을 찾으려고 노력했습니다.

글쎄, 지금 작동하고 있습니다. 저를 PONTING 주셔서 감사합니다 tungd xcape . 내가 한 일은 정말 간단하고 간단합니다.

  1. 시스템 환경 설정> 키보드 레이아웃> 옵션 ...> Ctrl 키 위치에서 'Caps Lock as Ctrl'을 선택했습니다.

  2. xcape -e 'Control_L = 탈출'

Caps Lock은 수정 자처럼 사용될 때 Ctrl로 작동하고 단독으로 누르면 Esc로 작동합니다 (xcape README 파일에 언급 된 것처럼 수백 밀리 초의 약간의 지연이 있으므로 여전히 사용하는 Mac 솔루션만큼 최적이 아닙니다) KeyRemap4MacBook.)


4
내가 사용하지 않는 한 gnome-tweak-tool매핑 Caps LockCtrl어떤 존재로Keyboard layout 에서 System Settings우분투 14.04에. 그런 다음 xcape -e 'Control_L=Escape'작동하지 않았지만 사용 후 키 코드 66 xcape -dCaps Lock생성하고 각각 다시 매핑 한 것을 발견했습니다 xcape -e '#66=Escape'.
Sergiy Belozorov

3
에 따라 이 블로그 게시물 , 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'
루이 시모노

이것은 정말 허용 된 답변이어야합니다 @ user372737
Assaf Lavie

@LouisSimoneau 이건 이건 천번 이구나.
스펜서 Boucher

1
지연 문제가 있습니까?
Toothrot

6

나도 이것을 찾고 있습니다. 일주일 전, 나는 xmodmap다음 을 사용하여 부분적인 해결책을 찾았습니다 .

add Control = Caps_Lock
remove Lock = Caps_Lock
keysym Caps_Lock = Escape

이것은 물론 완벽하게 작동하지는 않지만 CapsLock을 누를 때 동시에 Escape와 Ctrl을 동시에 전송하지만 잠시 동안 기뻤습니다.

마지막 으로이 작은 유틸리티 https://github.com/alols/xcape를 발견했습니다 . 이제 CapsLock을 Ctrl에 다시 매핑하고 xcape가 작업을 수행하도록 할 수 있습니다.


다른 옵션은 At-Home-Modifier입니다. 현재 개발 중이 아니며 루트에 설치하면 xcape와 약간 다릅니다. 그러나 xorg.conf를 통해 트리거되므로 다른 키보드를 동시에 사용하면서 특정 키보드에서만 작동 할 수 있습니다.
Sparhawk

4

편집 : 대부분의 똑똑한 (최신) 디스플레이 관리자 에게이 문제가 해결되었습니다.

Louis와 Sergiy의 의견에 따라 LightDM 및 Unity를 사용하는 Ubuntu 16.04 (Xenial)에서이 솔루션을 개발했습니다.

다음 코드 줄을 내 코드에 넣습니다. .xprofile홈 디렉토리의 파일에 .

setxkbmap -option 'caps:ctrl_modifier' && xcape -e 'Caps_Lock=Escape' &

후행은 세션을 차단하지 않도록 xcape 명령을 백그라운드에 넣습니다. setxkbmap은 즉시 변경됩니다.

세르지 :

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 9 월 4 일 14시 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 = 탈출 '– Louis Simoneau 8 월 4 일 '15시 10:06


3

설치 xcape

sudo apt-get install xcape

에 두 줄을 추가하십시오 ~/.bashrc

/usr/bin/setxkbmap -option 'caps:ctrl_modifier'⏎
/usr/bin/xcape -e 'Caps_Lock=Escape' -t 100

이 부분을 -t 100설정하지 않으면 vim을 사용하면 Esc에서 지연이 발생할 수 있습니다.


sudo apt-get install xcape(오타)
David

1

xcape / xmodmap 솔루션의 많은 문제 를 극복하기 위해이 목적을 위해 특별히 C로 도구를 만들었습니다 .


Esc에서 Caps 로의 "스왑"을 해제 할 수있는 방법이 있습니까? Caps를 전혀 사용하지 않고 이전 및 새 Esc를 모두 Escape로 유지하는 것을 선호합니다.
dragon788


고마워, 이것을 내 도트 파일로 자동 컴파일하는 링크를 넣어야합니다. 우분투 16.04에서와 같이 README.md를 PR 할 수 있으므로 컴파일하려면 libudev-dev 및 libevdev-dev가 필요합니다.
dragon788

@ dragon788은 아치에 왔습니다 (Antergos를 시도해 볼 수도 있습니다). 나는 우분투에서 몇 년 전에 이사를 왔으며 결코 다시는 가지 않을 것입니다.
pepper_chico
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.