Lister les raccourcis clavier d'i3 🇫🇷
Ça va devenir vraiment tekos 👓 par ici
Hier après-midi j’ai eu un moment de libre et j’ai décidé de le perdre en grattant une minuscule démangeaison ; J’ai donc écrit un script pour analyser le fichier de configuration i3, extraire les informations sur les liaisons keysym
(oui, y compris les modes) et les présenter de manière utile et opportune.
Raccourcis clavier i3
Ça pourrait être mieux ; ce que j’aimerais ressemblerait à which-key, qui affiche les combinaisons de touches disponibles tout au long de la frappe, c’est-à-dire lorsque tu tapes $mod + a
pour lancer une application, il te présente les combinaisons de touches déjà configurées ; Mais là c’est juste une liste, présentée de la façon la plus ergonomique possible.
Donc maintenant chez moi d’une part $mod+Shift+k
mais également k
dans n’importe quel mode affiche la fenètre en question.
Techniquement, il s’agit d’un script Python3 qui lit et analyse ~/.config/i3/config
(je viens de réaliser que je n’ai rien écrit en cas d’absence de ce fichier, d’autant qu’il peut aussi se trouver à ~/.i3config
, je vais reprendre ça demain, pour le moment c’est du quick-and-dirty, c’est un fichier adapté à mon environnement (spécifiquement mon fichier de config):
1 | MODE: |
Donc YMMV ; et qui, selon les arguments passés en ligne de commande, les affiche dans la console (stdout
) ou sous la forme d’une page formatée en Pango qui peut ensuite être lue par quelque chose de standard comme un navigateur ou zenity.
Si ce script peut être universel il le sera, mais réfléchis bien au problème : Il faudrait littéralement (re)implémenter le parser d’i3 pour non seulement trouver les modes, mais également lire les variables si comme moi tu caches des fonctions complèxes - en l’occurence le nom et les commandes d’appel des modes - derriere des variables avec des nom normaux lisibles par des humains ; More later.
1 | px-i3-keyboard-shortcuts.py -h |
Normalement, je passe juste la page au navigateur par défaut, mais xdg-open
est actuellement cassé dans Firefox snap 😕
Source ici.
En i3
1 | set $i3_keyboard_shortcuts "~/.scripts/px-i3-keyboard-shortcuts.py -t html -o file && zenity --text-info --title='i3 Keyboard Shortcuts' --width=640 --height=800 --html --window-icon=info --filename=/tmp/.i3-kb-bindings.html" |
Mais aussi dans tous les modes (c’est-à-dire, k
lorsque tu es dans un mode et que tu as oublié les touches)
1 | bindsym $mod+z mode "$system_mode" |
C’est tout merci bonne semaine 🤖