Отключить блокировку Caps при нажатии Escape

Есть ли способ отключить CapsLock всякий раз, когда нажата Esc . Да, я использую VIM! У меня на самом деле есть альтернативная раскладка клавиатуры all-caps на Ctrl-6, но я нахожу ее громоздкой и предпочитаю просто отключать ОС CapsLock всякий раз, когда нажата Esc . Кроме того, я часто использую SSH на других серверах в течение нескольких часов, поэтому я нахожусь там на складе VIM.

Заметьте, что я уже поменял ключи CapsLock и Esc . Однако, когда нажата клавиша Esc (которая, как считается, обозначена CapsLock на клавиатуре и рядом с A ), мне нужно, чтобы она выполняла как Escape и Disable-CapsLock-If-It-Is-Enabled .

Это на Kubuntu 12.10. Благодарю.

В X11 (на консоли я не знаю) вы можете сделать это, переопределив поведение клавиши Escape. Я посмотрел определение «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 (например: ~/.xkb/keymap/mykbd , вы можете создать его с помощью setxkbmap -print > ~/.xkb/keymap/mykbd ) изменить строку xkb_symbols, чтобы добавить «+ mysymbols (esc_break_caps)»,

вы можете загрузить его с помощью: xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY и нажатие Esc приведет к удалению состояния CapsLock (на самом деле эффект происходит при выпуске Esc, я думаю, что только модификаторы ключи имеют немедленный эффект, другие – после их выпуска.)

О, если вы хотите также заменить клавиши Escape и CapsLock; затем используйте это вместо (и вы помещаете «+ mysymbols (esc_swap_and_breaks_caps)» в ваш файл mykbd):

 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 на клавиатуре) отправляет Escape и <ESC> (клавиша выгравирована Esc ) отправляет CapsLock, whith <CAPS> (отправка Escape) также снимает состояние капота

Добавьте эти строки в ~/.Xmodmap :

 clear lock keycode 0x42 = Escape 

Затем введите команду:

 xmodmap ~/.Xmodmap 

Клавиша Caps Lock теперь переназначена клавишей Esc .

Ссылка URL .


Также ознакомьтесь с этой хорошей статьей о Mapping CapsLock для Escape в Ubuntu , которая, кажется, является пользователем unix.se 🙂

Я не уверен, отвечает ли это на ваш вопрос, но чтобы сопоставить функцию Esc с ключом CapsLock , вы можете использовать это:

 setxkbmap -option "caps:escape"