web-dev-qa-db-fra.com

Comment puis-je faire fonctionner les raccourcis personnalisés lors de la libération des touches plutôt que de la pression des touches?

J'utilise Ubuntu 14.04. avec Unity DE.

Comment puis-je faire fonctionner les raccourcis clavier sur la touche relâcher, pas sur appuyer sur la touche?

Par exemple, si je veux utiliser la touche Windows pour plusieurs raccourcis, cela ne fonctionne que pour celui qui est déclenché par la seule touche Win, car le raccourci fonctionne avant que la prochaine touche ne soit enregistrée.

4
Ravan

Pas exactement une réponse, mais peut-être une solution.

AFAIK, les touches que vous mentionnez sont des touches de modification qui sont destinées à modifier l'effet d'une autre touche (non modificatrice) enfoncée simultanément.

Je ne connais pas très bien le matériel, mais je pense qu'une partie du traitement des modificateurs peut en fait se produire dans le matériel du clavier ou dans les pilotes - ils ne sont donc pas facilement accessibles au niveau de l'application. Je sais que certains claviers que j'avais il y a de nombreuses années ont sorti des caractères 8 bits ASCII et ont en fait modifié certains de ces bits lorsque vous avez appuyé sur Ctrl ou Maj.

Cela étant dit, l'exécution de xev montre qu'un logiciel "de niveau supérieur" peut avoir accès aux codes de numérisation réels provenant du "périphérique" du clavier, donc je m'attends à ce qu'il soit possible d'écrire votre propre pilote de clavier de remplacement qui fera tout ce que vous êtes suffisamment habile pour coder, mais cela peut impliquer une grande connaissance du noyau et d'autres composants internes de Linux.

Au lieu de faire pousser les cheveux sur vos globes oculaires en apprenant tout cela, envisagez d'abord quelques alternatives qui peuvent répondre à tout ou partie de vos besoins:

La commande xmodmap vous permet de modifier la disposition de votre clavier en modifiant l'action de chaque touche. Cela a lieu avant que les applications ne voient les touches, donc cela devrait fonctionner de manière transparente.

AutoKey est un processeur de macros clavier qui vous permet de définir des phrases de texte et des raccourcis clavier qui déclenchent des substitutions de phrases ou exécutent des macros entières écrites en Python.

Il est conçu pour être utilisé dans des environnements GUI qui sont pris en charge par GTK ou QT, mais fonctionnera également correctement dans une fenêtre de terminal.

Chaque macro ou phrase peut également avoir un filtre de fenêtre associé afin qu'elle ne fonctionne que dans les fenêtres qui passent le filtre (et ne fasse pas de choses inappropriées si elle est invoquée dans une fenêtre dans laquelle elle n'a pas été conçue pour fonctionner.)

Une fois qu'une macro est invoquée, vous exécutez essentiellement un programme Python qui peut faire presque tout Python est capable de - limité principalement par vos compétences en programmation - parce que il existe des modules Python pour presque tout ce que vous pourriez souhaiter accomplir.

Étant donné que AutoKey est conçu pour émettre des frappes qui ressemblent exactement à celles que vous avez tapées, il devrait fonctionner avec presque tous les programmes. Le programme pensera simplement que vous avez tapé toutes les frappes que AutoKey émet et ne saura même pas que vous ne les avez pas tapées. (Il y a de bons points à cela, mais cela fonctionne surtout.)

1
Joe