Yabai : un gestionnaire de fenêtre i3 like pour MacOS

Introduction
Section intitulée « Introduction »Yabai est basé sur i3 Windows Manager, un gestionnaire de fenêtre qui utilise des commandes clavier pour gérer les fenêtres. Yabai est donc une application qui permet d’organiser et de gérer les fenêtres de votre système Mac avec des commandes clavier.
On va voir qu’avec plusieurs outils en plus de Yabai vous allez pouvoir ne plus toucher à votre souris pour gérer vos fenêtres.
Yabai va vous permettre également de “ranger” automatiquement vos fenêtres comme ceci par exemple :
Voici la liste des outils que j’ai installer pour compléter l’installation de Yabai :
- Yabai : gestionnaire de fenêtre i3 like
- Sketchybar : qui permet de remplacer la toolbar de MacOS par une toolbar custom.
- Borders : permet de rajouter une jolie bordure sur les fenêtres active.
- Skhd : permet de créer des raccourcis clavier pour les applications.
Installation des outils
Section intitulée « Installation des outils »Repository : Yabai
On va commencer par le gestionnaire de fenêtre Yabai. Pour l’installer :
brew install koekeishiya/formulae/yabai
Ensuite, il vous faudra créer un fichier de configuration, crée votre fichier de configuration pour commencer :
vi ~/.yabairc
Puis voici ma configuration :
# Désactive le suivi de la souris :# La fenêtre sous le curseur ne recevra pas automatiquement le focus.yabai -m config mouse_follows_focus off
# Désactive le focus automatique au passage de la souris :# Bouger la souris au-dessus d'une fenêtre ne change pas le focus.yabai -m config focus_follows_mouse off
# Définit la durée des animations d'opacité de fenêtre à 0.1 seconde :# Les transitions de transparence seront rapides (mais ici, l'opacité est désactivée juste après).yabai -m config window_opacity_duration 0.1
# Désactive totalement l'opacité des fenêtres :# Toutes les fenêtres seront entièrement opaques.yabai -m config window_opacity off
# Supprime les ombres portées sous les fenêtres :# Peut donner un look plus « plat » et léger à l'interface.yabai -m config window_shadow off
# Définit un écart de 10 pixels entre les fenêtres :# Permet de « respirer » visuellement entre les fenêtres.yabai -m config window_gap 10
# Désactive l'affichage d'une bordure autour des fenêtres :# Cela peut donner un look plus épuré (mais attention, les réglages suivants sur les bordures existent quand même).yabai -m config window_border off
# Définit l'épaisseur de la bordure des fenêtres (si jamais activée) à 2 pixels :# Prépare la config au cas où `window_border` serait activé plus tard.yabai -m config window_border_width 2
# Définit la couleur de la bordure des fenêtres inactives :# `0.25` est une valeur flottante ici (0 = transparent, 1 = opaque) ou une couleur selon la version utilisée.yabai -m config window_border_color 0.25
# Définit la couleur de la bordure de la fenêtre active :# Ici plus « brillante » que les fenêtres inactives (0.75).yabai -m config active_window_border_color 0.75
# Définit aussi l'épaisseur de la bordure de la fenêtre active :# Elle reste à 2 pixels, comme les autres fenêtres.yabai -m config active_window_border_width 2
Enfin lancer Yabai :
yabai --start-service
Sketchybar
Section intitulée « Sketchybar »Sketchybar vous permet de créer une toolbar custom pour remplacer la toolbar sur macos (que j’utilise jamais personnellement) :
Sur ma configuration actuelle de Sketchybar, je fais apparaître certaines informations : le numéro du bureau sur lequel je suis, l’application qui est au premier plan, le titre de la musique Spotify qui est lancé. Mon adresse ip publique, l’usage CPU de ma machine, le volume sonore, le pourcentage de la batterie, la date et l’heure.
Installation :
brew tap FelixKratz/formulaebrew install sketchybar
Pour Sketchybar c’est une affaire de configuration, vous trouverez quelques idées de configuration ici.
Je ferai un article dédié sur Sketchybar avec une configuration maison.
Pour lancer Sketchybar :
brew services start sketchybar
Borders permet de créer une bordure extérieur sur la fenêtre actuellement utilisé, exemple :
Installation :
brew install borders
Voici ma configuration de border :
#!/bin/bash
options=( style=round width=6.0 hidpi=off active_color=0xffe2e2e3 inactive_color=0xff414550)
borders "${options[@]}"
Pour lancer border :
brew services start borders
SKHD est un gestionnaire de raccourcis clavier ultra-léger pour macOS, qui permet de lier des combinaisons de touches à des commandes personnalisées. Il est souvent utilisé avec yabai pour contrôler la disposition des fenêtres au clavier de façon rapide et fluide.
Ceci va nous permettre d’avoir nos raccourcies claviers, exemple :
ctrl + ⌥ : pour ce déplacer d’une fenêtre à l’autre
Pour installer skhd :
brew install koekeishiya/formulae/skhd
Pour configurer skhd, j’ai crée un fichier de configuration vi .skhdrc
:
# changer les fenetre d'arrangementctrl + lalt - down : yabai -m window --swap south;ctrl + lalt - up : yabai -m window --swap north;ctrl + lalt - left : yabai -m window --swap west;ctrl + lalt - right : yabai -m window --swap east;
# zoom sur une fenetresalt - f : yabai -m window --toggle zoom-fullscreen;
# Déplacer le focus vers la fenêtre à gaucheshift + ctrl - left : yabai -m window --focus west
# Déplacer le focus vers la fenêtre à droiteshift + ctrl - right : yabai -m window --focus east
# Déplacer le focus vers la fenêtre en hautshift + ctrl - up : yabai -m window --focus north
# Déplacer le focus vers la fenêtre en basshift + ctrl - down : yabai -m window --focus south
Pour start le service :
skhd --start-service
Conclusion
Section intitulée « Conclusion »Voici ma configuration actuelle de fenêtre sur macos, je vais encore la faire évoluer, mais ce que l’on a pu voir, c’est que Yabai est une alternative intéressante à I3 sur MacOS, cette configuration pour permettra de gérer au clavier votre gestion de fenêtre. Je présenterai dans un autre billet ma configuration de Sketchybar.