Pour Ubuntu 18.04.
J'ai lutté avec ce problème pendant deux jours. J'ai essayé toutes les méthodes énumérées ici précédemment. Et il semble que j'ai trouvé une solution. Mais elle est très instable et comporte des bogues.
L'idée de base est la suivante : dans les paramètres du système, vous pouvez spécifier la commande qui est lancée par la commande Ctrl + Shift + U combinaison de touches.
Remarque : si vous spécifiez false
comme commande, la combinaison ne fonctionnera pas du tout.
Cependant, nous pouvons spécifier le chemin du script comme commande, dans lequel nous simulerons l'appui sur la même combinaison de touches.
Pour simuler les frappes au clavier, j'ai essayé la fonction xdotool
( apt install xdotool
) et le xte
( apt install xautomation
). Les deux options étaient instables. Cependant, xte
s'est avéré être 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 l'application Ctrl + Shift + U combinaison de touches dans 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 quelques réserves :
- cela fonctionne lentement (sur mon assez vieux PC)
- Pendant 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 le script est déjà en cours d'exécution.
En général, si vous n'utilisez pas souvent cette combinaison, alors cette solution peut vous convenir.
Mais, probablement, quelqu'un trouvera une solution meilleure et plus stable.
J'espère que cette idée pourra aider quelqu'un.