Intereting Posts
срок действия учетной записи root почему я получаю два разных IP-адреса в Windows (основная ОС) и Linux (в виртуальной коробке) Извлечение строк по ключу из очень большого файла нет возможности устанавливать пакеты как wirehark Любая программа, подобная `sudo`, чтобы получить root, если два пользователя вводят пароль? Автоматизация ввода текста из сценария bash без использования EOF Перемещение большого количества файлов и каталогов в другой каталог Что конкретно происходит в Linux внутри, когда подключен кабель Ethernet? Как искать файлы из графического интерфейса gnome в debian? Хотя в vi как я могу вставить / вставить / вставить содержимое другого файла dpkg –configure -a не работает Ошибка Rsync 23: некоторые файлы не были переданы при копировании файлов с диска Windows на внешний жесткий диск wget захватывает пустые файлы, которые фактически существуют Непоследовательное поведение перенаправления ssh interactive vs commands Хранение пароля секретного ключа для автоматической установки SSHFS?

Как предотвратить эффект переключения колпачков, без переназначения или отключения его?

У меня есть программа X11, которая захватывает cap-lock и использует ее. Проблема в том, что я хочу отключить обычное переключение кеш-блокировок, но, похоже, это отключает ключ.

Таким образом, независимо от того, что X11 получает за нажатие клавиши блокировки, он все равно должен получать (не отключать ключ или переназначать его на какой-либо другой ключ), но без каких-либо изменений нажатия клавиш в шапку (который может быть на уровне ядра? ).

Я попытался изменить scancode, но это просто переделало ключ. Я также удалил запись с помощью xmodmap , но также отключил кепки.

Как я могу сказать ядру игнорировать кеп-ключ (по его обычной функции), но все равно передать сообщение X?

Просто добавим немного подробней:

«Программа», которую я пытаюсь запустить, гуманизирована «enso». Когда нет ключа, я получаю сообщение об ошибке «CRITICAL: root: Не удалось найти ключ квазимода». Когда нет ошибки, я могу использовать enso с шапками, но sofar не выяснил, как отключить функциональные возможности кешков, в то время как enso все еще может это получить.

Я думаю, что у меня есть способ отключить переключение ключа Capslock, но не полностью отключить ключ все вместе или переназначить его на другой ключ на клавиатуре.

Если вы используете команду:

 setxkbmap -option caps:none 

Клавиатура больше не будет переключаться. Я подтвердил это на своем ноутбуке, работающем на Fedora 14, светодиод больше не загорается, и нормальная функциональность Capslock не прошла.

Однако использование xev по-прежнему показывает, что клавиша нажата:

 $ xev ... ... KeyPress event, serial 35, synthetic NO, window 0x6800001, root 0xb1, subw 0x0, time 261504852, (167,-15), root:(353,268), state 0x10, keycode 66 (keysym 0xffffff, VoidSymbol), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyRelease event, serial 35, synthetic NO, window 0x6800001, root 0xb1, subw 0x0, time 261504971, (167,-15), root:(353,268), state 0x10, keycode 66 (keysym 0xffffff, VoidSymbol), same_screen YES, XLookupString gives 0 bytes: XFilterEvent returns: False ... 

Таким образом, ключевые нажатые события по-прежнему остаются нетронутыми для других приложений, чтобы забрать их.

setxkbmap

Файл /usr/share/X11/xkb/rules/xorg.lst содержит полный список параметров, которые вы можете предоставить setxkbmap .

Грепируя через этот файл для «cap», я заметил эту строку:

 caps:none CapsLock is disabled 

В этом файле есть другие значения, поэтому, если это не то, что вы после, возможно, вместо одного из этих альтернативных значений.

 $ grep cap /usr/share/X11/xkb/rules/xorg.lst grp:caps_switch CapsLock (while pressed), Alt+CapsLock does the original capslock action grp:caps_toggle CapsLock grp:shift_caps_toggle Shift+CapsLock grp:shift_caps_switch CapsLock (to first layout), Shift+CapsLock (to last layout) grp:alt_caps_toggle Alt+CapsLock lv3:caps_switch CapsLock lv3:caps_switch_latch CapsLock (chooses 3rd level, latches when pressed together with another 3rd-level-chooser) ctrl:nocaps Make CapsLock an additional Ctrl ctrl:swapcaps Swap Ctrl and CapsLock grp_led:caps CapsLock caps CapsLock key behavior caps:internal CapsLock uses internal capitalization. Shift "pauses" CapsLock caps:internal_nocancel CapsLock uses internal capitalization. Shift doesn't affect CapsLock caps:shift CapsLock acts as Shift with locking. Shift "pauses" CapsLock caps:shift_nocancel CapsLock acts as Shift with locking. Shift doesn't affect CapsLock caps:capslock CapsLock toggles normal capitalization of alphabetic characters caps:numlock Make CapsLock an additional NumLock caps:swapescape Swap ESC and CapsLock caps:escape Make CapsLock an additional ESC caps:backspace Make CapsLock an additional Backspace caps:super Make CapsLock an additional Super caps:hyper Make CapsLock an additional Hyper caps:shiftlock CapsLock toggles Shift so all keys are affected caps:none CapsLock is disabled compose:caps CapsLock shift:breaks_caps Shift cancels CapsLock shift:both_capslock Both Shift-Keys together toggle CapsLock shift:both_capslock_cancel Both Shift-Keys together activate CapsLock, one Shift-Key deactivates 

Рекомендации

  • Отключить Caps Lock и переназначить меню на Super_R с помощью xmodmap больше не работает
  • Отключить и включить Caps Lock в Ubuntu
  • Отключить ключ Caps Lock в Linux
  • Клавиатура – изменение или отключение Caps Lock

Если вы не хотите, чтобы ключ Caps Lock имел обычный эффект, вы можете отключить модификатор Lock , сохраняя при этом Caps_Lock Caps_Lock.

 xmodmap -e 'clear Lock' 

Это очень похоже на ответ, который я дал для другого вопроса . Этот фрагмент кода xkb должен сделать трюк.

 partial modifier_keys xkb_symbols "capsoff" { key <CAPS> { type[Group1] = "ONE_LEVEL", symbols[Group1] = [ Caps_Lock ], actions[Group1] = [ NoAction() ] }; };