Aller au contenu

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

yabai-logo

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.

Repository : Yabai

On va commencer par le gestionnaire de fenêtre Yabai. Pour l’installer :

Fenêtre de terminal
brew install koekeishiya/formulae/yabai

Ensuite, il vous faudra créer un fichier de configuration, crée votre fichier de configuration pour commencer :

Fenêtre de terminal
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 :

Fenêtre de terminal
yabai --start-service

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 :

Fenêtre de terminal
brew tap FelixKratz/formulae
brew 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 :

Fenêtre de terminal
brew services start sketchybar

Borders permet de créer une bordure extérieur sur la fenêtre actuellement utilisé, exemple :

Installation :

Fenêtre de terminal
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 :

Fenêtre de terminal
brew install koekeishiya/formulae/skhd

Pour configurer skhd, j’ai crée un fichier de configuration vi .skhdrc:

# changer les fenetre d'arrangement
ctrl + 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 fenetres
alt - f : yabai -m window --toggle zoom-fullscreen;
# Déplacer le focus vers la fenêtre à gauche
shift + ctrl - left : yabai -m window --focus west
# Déplacer le focus vers la fenêtre à droite
shift + ctrl - right : yabai -m window --focus east
# Déplacer le focus vers la fenêtre en haut
shift + ctrl - up : yabai -m window --focus north
# Déplacer le focus vers la fenêtre en bas
shift + ctrl - down : yabai -m window --focus south

Pour start le service :

Fenêtre de terminal
skhd --start-service

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.