(résolu) LinuxCNC Modification des raccourcis clavier

  • Auteur de la discussion carlos78
  • Date de début
C

carlos78

Compagnon
Bonjour,

Je voudrais savoir comment on peut modifier les raccourcis clavier parce que je trouve que les raccourcis par défaut des axes ABCUVW (3 à 8) n'est pas pratique.

Actuellement, Il faut avec mon clavier d'abord activer l'axe qui m'intéresse en appuyant sur SHIFT + le chiffre qui lui correspond (3 à 8), puis ensuite utiliser les touches (6/-) ou (+/=) pour faire les déplacements. Le problème est que ces 2 dernières touches sont automatiquement affectées au dernier axe qui a bougé, donc si j'ai eu la bonne idée ensuite de bouger l'un des axes XYZ, il faut de nouveau reactiver l'axe. Etc ...

C'est vraiment pas terrible ces raccourcis surtout que le même SHIFT + un chiffre d'un axe inéxistant change le ratio de la vitesse de déplacement (de 10% à 90%).

Carlos
 
C

carlos78

Compagnon
Re: LinuxCNC Modification des raccourcis clavier

Salut,

J'avais également pensé à faire une boite à boutons à partir du circuit d'un clavier mais je me suis dit que ça changerait pas vraiment la donne parce que cette boite reproduirait en fait les touches du clavier sans les modifier. Ce serait un clavier bis raccordé sur l'ordinateur.
Sinon, l'idée d'une boite à boutons me plait bien pour l'aspect ergonomie. Je verrai par la suite.
Pour le moment je préfère essayer de modifier le fichier système qui va bien (si je le trouve) pour choisir MES raccourcis.
J'ai rien trouvé sur notre forum sur ce sujet et malheureusement les sites qui l'abordent sont quasiment tous anglophones. En outre, ils se limitent presque toujours à rappeler la liste des raccourcis par défaut ...

Carlos
 
G

gaston48

Compagnon
Re: LinuxCNC Modification des raccourcis clavier

Bonjour,
L’interprétation des raccourcis clavier est stocké dans un fichier script en python nommé "axis" .
Il est situé, à partir de la racine du disque, dans le répertoire /usr/bin/
Il faut ouvrir ce fichier avec gedit et toutes les lignes d’instructions qui exploitent une touche de clavier ont une commande
qui contient le mot "bind" comme par exemple root_window.bind .
Si tu permutes des commandes ou que tu en rajoutes, il faut mettre à jour aussi la partie "help" de ce fichier.
La syntaxe est basé sur Tkinter, la boite à outils en python pour gérer les interfaces graphiques.

http://www.tcl.tk/man/tcl8.4/TkCmd/keysyms.htm
http://infohost.nmt.edu/tcc/help/pubs/tkinter/web/key-names.html

A chaque mise à jour de linuxcnc, ton fichier modifié sera écrasé. Pour cela, il existe donc une autre solution
qui est de créer un fichier script qui sera consulté avant de charger axis afin de le personaliser .
Je ne sais pas s’il se contente de compléter le fichier axis(.py) ou s’il est prioritaire sur ses instructions ?
Ce fichier doit s’appeler " .axisrc " et il est à créer dans ton répertoire personnel ou se trouvent pleins d’autres fichiers script
de ce type dont le nom commence par un point.
Attention ce sont des fichiers cachés, dans les options affichage du navigateur, il faut cocher "afficher les fichier cachés" et configurer
l’éditeur gedit en python s’il ne reconnaît pas le type.
 
Dernière édition par un modérateur:
C

carlos78

Compagnon
Re: LinuxCNC Modification des raccourcis clavier

Bonsoir Gaston48,

Merci pour toutes tes informations. Avant de modifier l'affectation des touches, il va falloir que j'analyse les conséquences.
Le 1er pas à franchir sera de connaitre les codes des touches avec les noms : tes 2 fichiers vont m'aider. J'ai lu quelque part que le programme xev. permet de les connaitre (à vérifier).
Sur le sujet de la réaffectation des touches du clavier , j'ai lu tout à l'heure sur CNCZone une solution qui ne me convient pas : intervenir sur le fichier Xmodmap. j'ai compris ( à tord ?) que cette modification affectait ensuite toutes les applications sous Linux. Je retiens pas à priori.
Puis sur d'autres posts j'ai lu effectivement qu'il faudrait soit s'attaquer au fichier axis, soit au fichier .axisrc, soit aux 2. J'ai pas tout bien compris sur les explications mais je crois que le fichier .axisrc est mieux adapté.
J'ai également trouvé ce doc : Voir la pièce jointe Custom Key mapping.doc Un exemple trouvé également sur le net pour ajouter un raccourci (en créant ou modifiant le fichier .axisrc ?) :
root_window.bind("<Control-q>","destroy.")
help2.append(("Control-Q","Quit")


Carlos
 
C

carlos78

Compagnon
Re: LinuxCNC Modification des raccourcis clavier

Bonjour à tous,

A force de lire et relire des infos sur le net, j'ai enfin trouvé une solution à mon problème de raccoucis clavier.
Pour ceux que ça intéresse, les étapes que j'ai suivi sont :

1) reconnaissance des caractères saisis sur mon clavier : Taper dans un fenêtre terminal xev
Programme xev.jpg

Ce programme ouvre une petite fenêtre "Event Test" qui permet de tester les touches. On voit des Keypress event lorsqu'on appuie sur une touche et des Keyrelease event lorsqu'on la relache. Chaque touche est affectée d'un keycode et d'un keysim. Le keysim change si on appuie simultanement sur les touches de contrôle (shift, ctrl, alt, ...) . C'est le keysim des touches qui nous intéresse ---> J'ai donc relevé ceux des touches spéciales de mon clavier (celles qui ont 2 ou 3 caractères) qui sont susceptibles d'être utilisées.

2) J'ai cherché et trouvé le fichier axis.
Taper dans une fenêtre terminal : cd /usr/bin puis xedit axis. Le fichier axis s'ouvre en lecture mais, comme je n'ai pas l'intention de le modifier, c'est suffisant.
C'est un gros fichier Python. J'y comprend rien, mais grâce à NotePad++ je relève que root_window.bind et bind reviennent très souvent. J'y trouve également une zône avec la liste complête des help. Je note les caractères déja affectés et au passage j'essaie de comprendre un peu la syntaxe des commandes root_window.bind pour essayer d'en écrire quelques unes à ma façon.

3) Au travers des lectures, j'ai compris que la création d'un fichier .axisrc est la méthode la mieux adaptée à mon problème de configuration du clavier. Bien sur, celui-ci n'existe pas encore...
Taper dans une fenêtre terminal : xedit .axisrc pour le créer dans le répertoire racine de l'utilisateur ( ~$ ).

Dans mon cas, je voulais avoir pour ma configuration XYZB : l'activation avec la lettre b de l'axe B (pour l'utilisation comme avec les axes XYZ des touches + et -), et 2 touches pour jogger directement l'axe B. J'ai choisi pour le moment à cet effet les touches (ù = keysim ugrave) et (* = keysim asterisk).

Mon fichier .axisrc actuel :

# activation avec la lettre b de l'axe 4
root_window.bind("b", lambda event: activate_axis(4))
# utilisation des caractères ù et * pour jogger sur l'axe 4
root_window.bind("<ugrave>", lambda e: jog_on(4, -get_jog_speed(4)))
root_window.bind("<asterisk>", lambda e: jog_on(4, get_jog_speed(4)))
root_window.bind("<KeyRelease-ugrave>", lambda e: jog_off(4))
root_window.bind("<KeyRelease-asterisk>", lambda e: jog_off(4))

:-D :-D et ça marche ....

NB :
1) J'ai essayé de déplacer le fichier .axisrc dans le répertoire de la machine XYZB et ça ne marche pas --> pas de fichier .axisrc spécifique à une configuration machine. Dommage car j'espèrais faire un fichier par config de machine.
2) les help ne sont pas modifiés pour le moment
3) dans la config XYZA je n'ai toujours pas de raccourcus clavier pour jogger l'axe A (les caractères ([) et (]) ne fonctionnent pas avec mon clavier).

Carlos
 
C

carlos78

Compagnon
Re: LinuxCNC Modification des raccourcis clavier

Pour l'axe A, je viens de rajouter à mon fichier .axisrc 4 lignes avec les touches colon (:wink: et exclam (!) :

root_window.bind("<colon>", lambda e: jog_on(3, -get_jog_speed(3)))
root_window.bind("<exclam>", lambda e: jog_on(3, get_jog_speed(3)))
root_window.bind("<KeyRelease-colon>", lambda e: jog_off(3))
root_window.bind("<KeyRelease-exclam>", lambda e: jog_off(3))

:-D :-D c'est également OK

Carlos
 
Haut