2Sep

Comment lier Global HotKeys à un programme WINE sous Linux

Avez-vous déjà installé un programme Windows sous Linux sous WINE, pour découvrir qu'il ne lie plus les touches de raccourci au système? HTG a le travail que vous recherchiez.

Image par djeucalyptus

Présentation

Quiconque a même pensé à l'idée de passer à Linux, a probablement très vite rencontré le problème qu'il y a cette application Windows que vous avez besoin de fonctionner. Nous vous avons déjà montré que vous pouvez accomplir ceci en utilisant WINE.

Pour cet auteur, l'application était une application Text-To-Speech qui utilise le moteur Microsoft SAPI4.L'installation du programme sous WINE était un jeu d'enfant, mais à la fin, j'ai rapidement constaté que les raccourcis clavier utilisés pour déclencher les différentes actions du programme( lecture, arrêt de lecture, etc.) ne fonctionnaient pas et que cela est connuproblème avec le vin.

Je suis heureux de dire qu'après des éons de recherche, j'ai finalement trouvé la solution sous la forme d'un utilitaire GNU qui peut manipuler l'interface X.org en utilisant des fonctions natives. Bien que n'étant pas le seul de son genre, xdotool est celui qui était le plus facile à utiliser et qui se trouvait déjà dans les dépôts Ubuntu / Mint.

xdotool

Le programme xdotool peut effectuer de nombreuses tâches liées à la fenêtre à partir de la CLI, avec ceci dit, les deux seules que nous allons utiliser sont "search" et "key".La fonction "search" fait exactement cela, recherche l'identifiant d'une fenêtre en fonction des paramètres que vous lui avez définis. La fonction "clé" vous permet de simuler un coup de clé à un identifiant de fenêtre.

Installation &configuration

Il est supposé que vous avez déjà installé WINE et le programme dont vous avez besoin. Dans cet exemple, nous utiliserons Balabolka comme application "Windows" car c'est une bonne réplique freeware du programme original pour lequel j'avais besoin de cette solution( 2ème centre de discours).

Si vous avez également choisi d'utiliser Balabolka, vous devez activer sa capacité de raccourcis clavier.
Remarque: Vous pouvez installer TTSReader ou 2nd centre vocal même en mode démo, afin que les voix SAPI soient installées.

Ouvrez le programme et accédez aux paramètres( Maj + F6) sous "Options" - & gt;"Paramètres".

Allez dans l'onglet raccourcis clavier et cochez la case "Utiliser les raccourcis clavier globaux".

Cliquez sur OK.

Laissez-le s'exécuter en arrière-plan afin qu'il puisse faire son travail lorsque nous y accrochons les frappes.

Installer xdotool en émettant:

sudo apt-get installer xdotool

Liaison globale

Le programme xdotool ne nous aide pas à nous lier globalement aux raccourcis clavier, mais nous pouvons utiliser le système de raccourcis clavier déjà existant. Ce que nous allons faire est de créer un script simple qui utilise xdotool pour envoyer les frappes que nous voulons au programme Balabolka et l'appeler à partir du système de touches de raccourci des systèmes d'exploitation.

Créez un script appelé "start_read.sh" avec le contenu suivant:

xdotool key --window $( xdotool search --limit 1 --all --pid $( pgrep balabolka) --name Balabolka) "ctrl + alt +F9 "

Créer un autre script cette fois appelé" stop_read.sh "avec le contenu suivant:

xdotool key --window $( recherche xdotool --limit 1 --all --pid $( pgrep balabolka) - nom Balabolka)"ctrl + alt + F7 "

Note: Je sais qu'il s'agit d'une ligne qui ne nécessite pas de script, mais le programme Mint / Ubuntu" Keyboard Shortcuts "ne coopérait pas avec l'invocation directe. Si vous savez comment le faire, s'il vous plaît partager dans les commentaires ci-dessous.

Freinant cette commande vers ses composants, ce que nous voyons est:

  • La partie "-pid $( pgrep balabolka)", exécute un "pgrep" sur le programme que nous voulons utiliser pour déterminer son ID de processus. Cela rétrécira le fichier xdotool de "search" à juste ce PID.
  • La partie "recherche xdotool -limit 1 -all. .. -name Balabolka", rétrécit encore plus le champ de recherche de xdotool et limite les réponses retournées à 1. Comme dans notre cas, peu importe lequel des identifiants de fenêtres retournés dele programme, en limitant le résultat agit comme un formateur pour la commande "clé".Vous pouvez trouver que vous devez masser cette partie plus si cela importe pour le programme que vous utilisez.
  • La partie "clé xdotool -Window% WINDOW_ID%" ctrl + alt + F7 "" envoie la séquence de touches désirée au windowID qui a été obtenu par les parties précédentes.

Rend les scripts exécutables.

Linux Mint Keyboard raccourcis

Sous Linux Mint, les raccourcis clavier globaux sont définis dans le programme "Keyboard Shortcuts".

Une fois ouvert Cliquez sur "Ajouter" pour créer un nouveau raccourci personnalisé:

Donnez-lui un nom et sous "Command" donnez le chemin d'accès complet à l'un des scripts que nous avons créés ci-dessus. Répétez le processus pour le deuxième script.

Maintenant, dans la colonne "Raccourcis", cliquez sur le mot "Désactivé" pour avoir l'option de définir une nouvelle combinaison de touches.
Remarque: Vous pouvez, si vous le souhaitez, utiliser autre chose que la valeur par défaut du programme. Dans un sens, créer un "remappage" des raccourcis clavier qui, selon le programme que vous utilisez, serait hors de votre contrôle.

Frappez le combo que vous avez sélectionné et entendez la magie.

Ubuntu Keyboard

Sous Ubuntu, le programme qui définit les raccourcis clavier globaux s'appelle simplement "Keyboard".

Passez à l'onglet "Raccourcis" et sélectionnez "Raccourcis personnalisés".

Cliquez sur le signe plus pour ajouter un raccourci. Donnez-lui un nom et sous "Command" donnez le chemin complet de l'un des scripts que nous avons créés ci-dessus. Répétez le processus pour le deuxième script.
Maintenant, cliquez sur le mot "Désactivé" pour avoir l'option de définir une nouvelle combinaison de touches.

Note: En répétant sur la note de la section Mint, vous pouvez, si vous le souhaitez, utiliser autre chose que la valeur par défaut du programme. Dans un sens, créer un "remappage" des raccourcis clavier qui, selon le programme que vous utilisez, serait hors de votre contrôle.

Notes de l'auteur

Chaque fois que j'ai sérieusement envisagé de passer à Linux, ce problème était le premier sur ma liste de problèmes. Ce n'est pas que Linux n'a pas de problèmes, mais c'était le vrai obstacle, pour moi. J'ai essayé maintes et maintes fois, demandé à des amis / personnes sur le terrain et même en faire une prime. .. Je suis heureux que cette saga soit finie et que mon âme puisse enfin se reposer.
J'espère que j'ai aidé quelqu'un à ne pas avoir à subir la même épreuve.

Doc Brown: Il m'a fallu près de trente ans et toute ma fortune familiale pour réaliser la vision de ce jour. Mon Dieu, ça fait si longtemps?