Je connais un certain nombre de façons de remapper des combinaisons de touches dans Ubuntu sur une base globale (par exemple, remapper globalement Ctrl + S pour envoyer Ctrl + D ou quelque chose), comme l' application xbindkeys . Ce dont j'ai besoin, cependant, c'est d'un moyen de le faire uniquement pour une application spécifique . Par exemple, quelque chose comme "Remapper Ctrl + S pour envoyer Ctrl + D, mais uniquement dans Chrome ". Existe-t-il un moyen d'y parvenir?
shortcut-keys
x11
Derek Thurn
la source
la source
Réponses:
Votre idée d'utiliser xbindkeys sonne bien:
dans votre
.xbindkeysrc
ajout d'une nouvelle liaison de touches:Cela s'exécutera
"app_specific_keys.sh"
lorsque vous appuyez surctrl+s
.Vous devez maintenant définir le script. Il devrait obtenir la fenêtre active et de là le nom de l'application qui a actuellement le focus:
Cela ferait l'affaire: il demande à xdotool la fenêtre active, puis à xprop toutes les propriétés de la fenêtre avec l'id donné, puis réduit la sortie très verbeuse au nom de l'application (en fait sa classe). Si vous exécutez ceci dans un gnome-terminal, vous obtiendrez
Vous devez maintenant définir des actions pour vos applications:
Donc, ensemble, le script
"app_specific_keys.sh"
pourrait ressembler à ceci:Cela devrait fonctionner, mais comme dans cette question , je dois admettre que non. Probablement parce que l'un de Compiz, Unity, Global Menu ne fonctionne pas bien avec l'
--clearmodifiers
option de xdotool. Une solution de contournement consisterait à ajouter un sommeil devant votre script afin de pouvoir libérer les clés vous-même: Dans votre.xbindkeysrc
modification de ce raccourci clavier:En guise de note: cela ne fonctionnera pas, si vous voulez changer les clés des programmes qui s'exécutent dans un terminal (par exemple vi ou emacs en mode console). La classe d'application retournée serait toujours "Gnome-terminal".
J'espère que cela pourra aider.
la source
xvkbd -xsendevent -text "\Cs"
. Cela ne semble pas souffrir des problèmes que vous rencontriez avec xdotool.f
appelerxdotool key f
. Toujours à la recherche d'un moyen de le faire.xdotool type --window $(xdotool getwindowfocus) [keys]
l'utilisation de l'option --window et l'envoi dans la fenêtre actuellement active NE mèneront PAS à un comportement récursif.autokey est comme AutoHotkey pour Ubuntu. Vous pouvez écrire des scripts en python et les exécuter via un raccourci clavier et un filtre Windows (ce qui le rend spécifique à la pseudo-application). Votre script peut contrôler les événements du clavier et de la souris et même déplacer les fenêtres comme touche supplémentaire.
la source
autokey
est bien plus rapide quexbindkeys
, même avec le mode de détection de fenêtre activé - une action immédiate est prise. Inconvénient: les affectations des boutons de la souris semblent ne pas fonctionner (je pense que c'est un bug)