Parfois, lorsque j'utilise la synergie entre mes machines lorsque l'on utilise l'invité VirtualBox en plein écran, je suis coincé avec des modificateurs de touches étranges activés. S'ils existent sur mon clavier (comme Shift_L), je peux simplement appuyer dessus et leur état est réinitialisé et je peux continuer à taper en petites lettres. Mais certains d'entre eux ne sont pas du tout mappés sur mon clavier (comme ISO_Level3_Shift), donc je n'ai aucun moyen de les désactiver du tout!
Comment les réinitialiser? Pour l'instant, tout ce que je peux faire, c'est redémarrer l'ordinateur, mais c'est une solution plutôt embarrassante.
Tout ce que je veux, c'est un programme qui puisse "toucher" artificiellement tous les modificateurs de clavier possibles, de sorte que leur état serait réinitialisé. Peut-on le faire?
J'utilise Mint 14 (un clone d'Ubuntu 12.10 Quantal).
la source
xdotool keyup 204
.DISAPLAY=:1 xmodmap -pk | grep -iP 'alt|meta|super|hyper'
. Vous devrez changer le numéro d'affichage en votre numéro d'affichage VNC cassé.DISPLAY=:1
dans le commentaire ci-dessus.xdotool
prend en charge une--clearmodifiers
option pourkey
/keydown
/keyup
- peut-être que ce n'était pas le cas lorsque cette réponse a été écrite? J'espère quexdotool keyup --clearmodifiers space
cela fonctionnerait. (xdotool keyup
nécessite une clé à spécifier; «espace» est arbitraire.)J'ai découvert que pour mon système, la solution publiée impliquant
xdotool
souvent ne couvrait pas la clé qui était bloquée, et l'exécutionsetxkbmap
ne semblait rien accomplir sur mon système.La solution que j'ai découverte, qui a jusqu'à présent fonctionné sans faute, est d'utiliser
x11vnc
. Plus précisément, j'utilise la commande suivante:-clear_keys
est l'élément clé, ici. Il demandex11vnc
d'effacer toutes les touches enfoncées à sa sortie.-timeout 1
indiquex11vnc
de quitter après 1 seconde sans connexion et-deny_all
s'assure que personne ne peut se connecter pendant cette fenêtre.Parfois, la clé bloquée empêche toute interaction significative avec le bureau, auquel cas je vais exécuter ce qui suit via ssh:
la source
J'utilise "setxkbmap" sans argument. Il semble réinitialiser le clavier. J'ai un "raccourci" dans mon panneau que je peux utiliser avec une souris lorsque le clavier est complètement inutilisable.
la source
La
x11vnc
réponse est ingénieuse, mais si l'installationx11vnc
juste pour effacer les modificateurs semble exagérée, voici une solution Bash qui utilisexmodmap -pm
la sortie de pour émettre une clé pour tous les modificateurs connus. La conversion du code clé hexadécimal en code décimal repose sur l'expansion arithmétique de Bash.Si vous l'exécutez à partir d'un raccourci clavier, l'ajout
sleep 1
au début (pour laisser le temps aux touches physiques d'être relâchées) serait bien conseillé. Leecho
to stderr n'est pas nécessaire, bien sûr; J'aime juste pouvoir vérifier mon~/.xsession-errors
fichier pour une sortie comme celle-ci.la source