Esc 키를 누를 때 Caps Lock 끄기


10

누를 CapsLock때마다 비활성화하는 방법이 있습니까? Esc네, VIM을 사용합니다! 실제로 대체 모든 대문자 키보드 레이아웃이 Ctrl-6있지만 번거롭고 Esc눌릴 때마다 CapsLock을 비활성화하는 것을 선호합니다 . 또한, 종종 몇 시간 동안 다른 서버에 SSH를 연결하기 때문에 종종 VIM을 사용하고 있습니다.

나는 이미 키 CapsLockEsc키를 교환했습니다 . 그러나 Esc키를 누르면 ( CapsLock키보드에서 레이블이 붙어 있고 옆에 있음 A) 키 Escape와를 모두 수행해야합니다 Disable-CapsLock-If-It-Is-Enabled.

쿠분투 12.10에 있습니다. 감사.


vim또는 전체 데스크톱 에만 해당 기능을 추가해야 합니까?
mtk

데스크톱 기능으로 사용하고 싶습니다.
dotancohen

답변:


5

X11 (콘솔에서 모르겠 음)에서는 Esc 키의 동작을 다시 정의하여 수행 할 수 있습니다. 나는 "shift (break_caps)"정의를보고 그것이 어떻게 작동하는지, 그것을 조정했다.

XKB에이 대답 경우 로컬 수정 된 파일을 넣고 그것들을로드하는 방법 /에 대한 자세한 내용은.

그리고 원하는 것을하기 위해서는 다음 ~/.xkb/symbols/mysymbols과 같은 섹션 의 로컬 심볼 파일 (예 :)이 필요합니다.

partial modifier_keys
xkb_symbols "esc_breaks_caps" {
    key <ESC> {
        type = "ALPHABETIC",
        actions [Group1] = [
            SetMods(modifiers=none),
            SetMods(modifiers=Lock,clearLocks)
        ]
    };
};

로컬 키맵 파일 (예 : ~/.xkb/keymap/mykbd;로 만들 수 있음 setxkbmap -print > ~/.xkb/keymap/mykbd) xkb_symbols에서 추가 할 행을 변경 하십시오 +mysymbols(esc_breaks_caps).

당신은 지금 그것을로드 할 수 있습니다 : xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY 를 누르면 EscCapsLock 상태가 제거됩니다 (실제로, 효과 는 Esc 릴리스 에서 발생합니다 . 변경 키 만 즉시 효과가 있다고 생각합니다 . 다른 것들은 릴리스 후 효과입니다).

이스케이프 키와 CapsLock 키를 바꾸려면 대신 이것을 사용하십시오 (그리고 당신은 mykbd 파일에 "+ mysymbols (esc_swap_and_breaks_caps)"를 넣습니다) :

partial modifier_keys
xkb_symbols "esc_swap_and_breaks_caps" {
    replace key <CAPS> {
        type = "ALPHABETIC",
        symbols = [ Escape, Escape ],
        actions [Group1] = [
            SetMods(modifiers=none),
            SetMods(modifiers=Lock,clearLocks)
        ]
    };
    replace key <ESC> { [ CapsLock, CapsLock ] };
};

물리적 키는 <CAPS>~이며 <ESC>; <CAPS>( CapsLock키보드에 <ESC>키가 새겨진 Esc) Escape를 보내고 (키가 새겨진 )는 CapsLock을 보내고, <CAPS>(Esc를 보내는 중) 또한 Capslock 상태를 설정 해제합니다.


1

이 행을 ~/.Xmodmap다음에 추가하십시오 .

clear lock
keycode 0x42 = Escape

그런 다음 명령을 입력하십시오.

xmodmap ~/.Xmodmap

귀하의 Caps Lock키는 지금에 다시 매핑 Esc키를 누릅니다.

참조 URL .


또한 우분투에서 CapsLock을 Escape에 매핑하는 것에 대한이 멋진 기사를 살펴보십시오.


감사합니다. CapsLock과 Esc를 이미 교체했습니다. 그러나 Esc 키를 누르면 (키보드에서 CapsLock으로 표시되고 A 옆에 있음) Esc 키 Disable-CapsLock-If-It-Is-Enabled를 모두 수행해야 합니다. 명확히하기 위해 질문을 편집하겠습니다. 감사.
dotancohen

나는 당신이 다른 라운드가 필요하다고 생각했습니다. 다소 혼란 스러워요. 무엇 눌러에서 발생 Esc하고 Capslocks이러한 변경 후?
mtk

현재 : 가압시 ESC키에게 CapsLock기능을 전환하고 누를 때 CapsLock키를 ESC명령이 전송된다 (즉, ESC키에 재 맵핑 CapsLock하고, CapsLock키가 다시 매핑된다 ESC). 이 질문에 내 목표는 가압하는 것입니다 CapsLock키가 수행 모두ESC (가 현재 수행하는) 기능 오프 설정 CapsLock은 if와 경우에만 기능이 CapsLock기능이 활성화됩니다 (안 토글 즉 CapsLock기능, 오히려 사용 안 함이 경우 CapsLock사용할 수 있습니다).
dotancohen

1

이것이 귀하의 질문에 대답하는지 확실하지 않지만 Esc함수를 CapsLock키 에 매핑하려면 다음을 사용할 수 있습니다.

setxkbmap -option "caps:escape"
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.