Pour Ubuntu 18.04.
J'ai lutté avec ce problème pendant deux jours. J'ai essayé toutes les méthodes énumérées plus haut. Et il semble que je suis venu avec une solution. Mais il est très instable et contient des bugs.
L'idée de base est la suivante: dans les paramètres système, vous pouvez spécifier la commande lancée par la combinaison de touches Ctrl+ Shift+ U.
Remarque: si vous spécifiez false
comme commande, la combinaison ne fonctionnera pas du tout.
Cependant, nous pouvons spécifier le chemin du script en tant que commande dans laquelle nous simulerons en appuyant sur la même combinaison de touches.
Pour simuler des frappes, j'ai essayé le xdotool
( apt install xdotool
) et le xte
( apt install xautomation
). Les deux options étaient instables. Cependant, xte
s'est avéré plus flexible pour moi.
Exemple avec xte
- Créer un fichier
/home/username/shortcut.sh
- Ajouter la permission d'exécuter:
chmod u+x /home/username/shortcut.sh
- Spécifiez le chemin d'accès au script en tant que commande pour la combinaison de touches Ctrl+ Shift+ Udans les paramètres du clavier.
Voici un exemple de script:
#!/bin/sh
# Make a small delay in order to have time to release the keys.
sleep 0.2
# Simulate the release of just pressed keys, if they are still pressed.
xte 'keyup u' 'keyup Shift_L' 'keyup Control_L'
# Hack: Caps_Lock is used so that the system does not intercept this combination.
# You can try to remove it if it hinders you.
xte 'key Caps_Lock'
# Simulate pressing a key combination
xte 'keydown Shift_L' 'keydown Control_L' 'key u'
# Simulate releasing a key combination
xte 'keyup Shift_L' 'keyup Control_L'
# Restore Caps_Lock to the previous state.
xte 'key Caps_Lock'
J'ai testé cela dans PhpStorm 2018.2 EAP Build # PS-182.3458.35 et je peux dire que cela fonctionne, mais avec certaines réserves:
- cela fonctionne lentement (sur mon vieux PC)
- lors de l'exécution du script, il est préférable de ne pas appuyer sur une touche
- parfois cela peut ne pas fonctionner
- Parfois, il peut entrer dans une boucle infinie. Par conséquent, il est préférable d'ajouter une vérification au script que celui-ci est déjà en cours d'exécution.
En général, si vous n'utilisez pas souvent cette combinaison, cette solution peut vous convenir.
Mais, probablement, quelqu'un trouvera une solution meilleure et plus stable.
J'espère que cette idée aidera quelqu'un.