1 votes

Problème de remappage des boutons de la tablette graphique en raccourcis clavier

J'ai une tablette xp-pen bon marché avec 8 boutons supplémentaires. J'aimerais les associer à des raccourcis clavier, tels que Ctrl-Z, pour les utiliser avec Krita/Gimp/etc, mais le vendeur n'est pas en mesure de m'aider. utilitaire plus de regards comme une preuve de concept.

J'ai également essayé d'utiliser un EasyStroke comme proposé aquí mais

Le pad reconnu par xinput comme une souris avec 12 boutons. Mon plan était :

  • remapper les boutons de la tablette à 100-107 comme décrit
  • capture des événements par xbindkeys
  • déterminer le profil actuel en fonction de la fenêtre active
  • simuler les frappes de touches par xev ou xdotool
  • [extra] activer/désactiver cette bicyclette par des règles udev ou quelque chose du genre

Tout fonctionne bien dans les cas simples, comme la saisie d'un numéro de touche, mais les cas plus complexes échouent avec des touches qui " collent ".

J'ai téléchargé mon travail dans git repo . Le profil par défaut fonctionne bien avec les variantes de xdotool et xte, les profils krita et gimp ne fonctionnent pas dans les deux cas.

J'ai enregistré les événements dans handler.sh et j'ai découvert que xbindkeys "perd" certains événements de libération après l'exécution du profil krita ou gimp, mais fonctionne bien par défaut. J'ai pensé que cela pouvait être dû à l'exécution du handler pendant trop longtemps, et je l'ai démarré dans un processus séparé, mais cela n'a rien changé.

Bien Quelle pourrait être la cause de ce problème ?

1voto

user640378 Points 531

La cause est assez simple : selon le profil de gimp, xev appuie sur les boutons de contrôle/shift, et xbindkeys saute l'événement de relâchement parce que shift est toujours enfoncé. Vous pouvez dupliquer chaque section de la configuration pour gérer de telles situations, comme ceci :

"/opt/xp-pen/handler.sh 1 1"
  b:100
"/opt/xp-pen/handler.sh 1 1"
  b:100 + shift
"/opt/xp-pen/handler.sh 1 1"
  b:100 + control
...

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X