A veces, cuando uso la sinergia entre mis máquinas cuando una está usando el invitado VirtualBox a pantalla completa, me quedo atascado con algunos modificadores de teclas extraños encendidos. Si existen en mi teclado (como Shift_L), solo puedo tocarlo y su estado se restablece y puedo seguir escribiendo letras minúsculas. Pero algunos de ellos no están asignados a mi teclado (como ISO_Level3_Shift), ¡así que no tengo forma de desactivarlos en absoluto!
¿Cómo restablecerlos? En este momento, todo lo que puedo hacer es reiniciar la computadora, pero es una solución bastante embarazosa.
Todo lo que quiero es algún programa que pueda "tocar" artificialmente todos los modificadores de teclado posibles, para que su estado se restablezca. Se puede hacer?
Yo uso Mint 14 (un clon de Ubuntu 12.10 Quantal).
fuente
xdotool keyup 204
.DISAPLAY=:1 xmodmap -pk | grep -iP 'alt|meta|super|hyper'
. Deberá cambiar el número de pantalla a su número de pantalla VNC roto.DISPLAY=:1
al comentario anterior.xdotool
admite una--clearmodifiers
opción parakey
/keydown
/keyup
- tal vez no lo hizo cuando se escribió esta respuesta? Espero que esoxdotool keyup --clearmodifiers space
funcione. (xdotool keyup
requiere que se especifique una clave; "espacio" es arbitrario.)Descubrí que para mi sistema, la solución publicada que involucraba a
xdotool
menudo no cubría la clave que estaba atascada, y la ejecuciónsetxkbmap
no parecía lograr nada en mi sistema.La solución que descubrí, que hasta ahora ha funcionado sin fallar, es usar
x11vnc
. Específicamente, uso el siguiente comando:-clear_keys
Es la parte clave, aquí. Da instruccionesx11vnc
para borrar todas las teclas presionadas cuando sale.-timeout 1
le dicex11vnc
que abandone después de 1 segundo sin conexiones, y-deny_all
se asegura de que nadie pueda conectarse durante esa ventana.A veces, la clave que se atasca evita cualquier interacción significativa con el escritorio, en cuyo caso ejecutaré lo siguiente a través de ssh:
fuente
Yo uso "setxkbmap" sin argumentos. Parece reiniciar el teclado. Tengo un "acceso directo" en mi panel que puedo usar con un mouse para cuando el teclado no funciona por completo.
fuente
La
x11vnc
respuesta es ingeniosa, pero si la instalaciónx11vnc
solo para borrar los modificadores parece exagerada, aquí hay una solución Bash que usaxmodmap -pm
la salida para emitir una clave para todos los modificadores conocidos. La conversión de código clave hexadecimal a decimal se basa en la expansión aritmética de Bash.Si lo está ejecutando desde un atajo de teclado,
sleep 1
sería aconsejable agregar al principio (para dar tiempo a que se suelten las teclas físicas). Elecho
stderr no es necesario, por supuesto; Solo me gusta poder verificar mi~/.xsession-errors
archivo para obtener resultados como este.fuente