Иногда, когда я использую синергию между моими машинами, когда один использует полноэкранный гость VirtualBox, я застреваю с некоторыми странными включенными модификаторами клавиш. Если они существуют на моей клавиатуре (например, Shift_L), я могу просто нажать на нее, и их статус сбрасывается, и я могу продолжать печатать маленькими буквами. Но некоторые из них вообще не отображаются на моей клавиатуре (например, ISO_Level3_Shift), поэтому у меня нет возможности их вообще отключить!
Как их сбросить? Прямо сейчас все, что я могу сделать, это перезагрузить компьютер, но это довольно неловкое решение.
Все, что мне нужно, - это какая-нибудь программа, которая может искусственно «нажать» на все возможные модификаторы клавиатуры, поэтому их статус будет сброшен. Это можно сделать?
Я использую Mint 14 (клон Ubuntu 12.10 Quantal).
источник
xdotool keyup 204
.DISAPLAY=:1 xmodmap -pk | grep -iP 'alt|meta|super|hyper'
. Вам нужно будет изменить номер дисплея на ваш номер дисплея VNC.DISPLAY=:1
в виду в приведенном выше комментарии.xdotool
поддерживает--clearmodifiers
опцию дляkey
/keydown
/keyup
- может быть, нет, когда этот ответ был написан? Я ожидаю, чтоxdotool keyup --clearmodifiers space
это сработает. (xdotool keyup
требуетЯ обнаружил, что для моей системы опубликованное решение с участием
xdotool
часто не покрывало застрявший ключ, и запускsetxkbmap
, похоже, ничего не добился в моей системе.Решение, которое я обнаружил и до сих пор работало без сбоев, заключается в использовании
x11vnc
. В частности, я использую следующую команду:-clear_keys
это ключевая часть, здесь. Он инструктируетx11vnc
очистить все нажатые клавиши при выходе.-timeout 1
приказываетx11vnc
выйти через 1 секунду без подключений и-deny_all
удостоверяется, что никто не может подключиться в течение этого окна.Иногда застрявший ключ предотвращает любое значимое взаимодействие с рабочим столом, и в этом случае я выполню следующее через ssh:
источник
Я использую "setxkbmap" без аргументов. Кажется, для сброса клавиатуры. У меня есть «ярлык» на моей панели, который я могу использовать с мышью, когда клавиатура полностью неработоспособна.
источник
x11vnc
Ответ гениален, но при установкеx11vnc
только для очистки модификаторов кажется излишним, вот решение Bash , который используетxmodmap -pm
выход «ы выдать KeyUp всем известных модификаторов. Преобразование из шестнадцатеричного в десятичный код ключа основывается на арифметическом расширении Bash.Если вы запускаете его с помощью сочетания клавиш,
sleep 1
было бы целесообразно добавить в начале (чтобы дать время для освобождения физических клавиш).echo
К STDERR не нужно, конечно; Мне просто нравится иметь возможность проверить мой~/.xsession-errors
файл для вывода, как это.источник