[Astuce] i3wm : traverser les workspaces

Je suis devenu un vrai fan du gestionnaire de fenêtres i3wm et pour cause, il est ultra simple à scripter :)

Jusqu'à aujourd'hui une fonctionnalité majeure me manquait : pouvoir naviguer vers le workspace qui précède ou qui suit celui courant. On peut switcher entre les deux derniers workspaces qui ont été focused ou se déplacer directement vers un workspace (pour autant qu'un mapping soit prévu).

Pour arriver à combler ce manque, j'ai utilisé i3-msg qui permet de récupérer des informations sur i3wm et de lui donner des instructions. Je script en php car il faut lire du json...et en shell c'est compliqué !

L'algo est simple :

  • je récupère les workspaces avec : i3-msg -t get_workspaces
  • je les ordonne par ordre alphabétique (c'est comme ça que i3 les affiche)
  • je récupère le workspace courant
  • suivant ce qu'on demande, je retourne le workspace qui précède ou suit le workspace courant
  • je demande à i3 de switcher vers le workspace via : i3-msg 'workspace "le nom du workspace cible"'

Le script est disponible ici. Placez-le où vous voulez et renseignez un mapping tel que celui-ci (dans ~/.i3/config) :

bindsym $mod+p exec ~/bin/i3_switch_workspace.php previous
bindsym $mod+n exec ~/bin/i3_switch_workspace.php next

Note : dans ce mapping, mes raccourcis sont window+P pour aller au workspace précédant et window+N pour aller au suivant. Mon script se trouve dans ~/bin/ et le fichier est nommé i3_switch_workspace.php.

N'oubliez pas de rendre le script exécutable (chmod +x).

Vus : 1138
Publié par Simon Vieille : 140