Configuration
Un seul fichier KDL rechargé à chaud pilote tout : la touche mod, l'entrée, les raccourcis, les sous-modes, l'apparence, les animations, les règles et plus.
Sur cette page
atlaswm ne lit qu'un seul fichier : $XDG_CONFIG_HOME/atlaswm/config.kdl (c.-à-d.
~/.config/atlaswm/config.kdl). C'est du KDL, il est
rechargé à chaud dans la seconde qui suit l'enregistrement, et une erreur
d'analyse ne fait jamais tomber la session — la dernière configuration valide
continue de s'exécuter et l'erreur est consignée. Votre fichier n'a besoin que des
lignes que vous voulez changer ; tout le reste revient aux valeurs par défaut
compilées dans le binaire.
Pour partir d'une base documentée :
atlasctl default-config > ~/.config/atlaswm/config.kdl
Comment la fusion s'opère
- Les sections remplacent. Définissez
appearance { border-width 0 }et seule cette clé change ; le reste deappearanceconserve ses valeurs par défaut. - Les raccourcis fusionnent. Même motif de touche qu'un raccourci par défaut = il est remplacé ; un nouveau motif = il s'ajoute. Vous n'avez pas à ré-énumérer tous les raccourcis par défaut.
- Une mauvaise configuration est inerte. Une coquille, un verbe inconnu, une expression régulière cassée → l'analyse échoue, l'erreur est consignée, et la configuration précédemment chargée continue de s'exécuter. La session ne tombe jamais à cause d'une erreur de configuration ; corrigez le fichier et enregistrez pour réappliquer (rechargement à chaud).
Deux remarques sur les touches :
- Les raccourcis suivent la lettre, pas la touche physique :
Mod+qsur azerty est la touche qui tapeq. Verr. Maj et Verr. Num n'affectent jamais les raccourcis. input { xkb-layout "fr" }est la façon dont azerty fonctionne sans les variables d'environnementXKB_DEFAULT_*.
Les blocs principaux
Une carte rapide de ce qui se trouve où. Chacun est facultatif ; omettez un bloc pour en prendre les valeurs par défaut.
| Bloc | Ce qu'il contrôle |
|---|---|
mod "auto" | Le modificateur que tous les raccourcis référencent. auto = Alt en imbriqué, Super sur une vraie session. À redéfinir avec alt ou super. |
input { … } | Disposition / variante / options XKB, et repeat-delay / repeat-rate des touches. |
pan-step 200 | Pixels déplacés par action de panoramique. |
gaps 0 | Espacement (px) entre les fenêtres tuilées. 0 = sans espace. |
zoom-steps 1.0 0.5 | L'échelle de zoom : facteurs décroissants dans (0, 1]. Le « fit-plane » (ajustement au plan) est toujours ajouté comme dernier échelon. |
resize { step-px step-share } | Pas de redimensionnement au clavier : pixels pour les cibles absolues, une fraction de part pour les cibles pondérées. |
animations { enable duration-ms curve } | Lissage du panoramique/zoom/déplacement de fenêtre. enable #false (ou duration-ms 0) = instantané. |
debug { trace #false } | Quand activé, ajoute chaque action et sa cible résolue à ~/.local/state/atlaswm/trace.log. |
appearance { … } | Couleurs des bandes d'onglets, largeur/couleurs des bordures de fenêtre, le surlignage de la cible de redimensionnement, et la police/taille/couleurs/touches des étiquettes de saut vers une fenêtre. |
binds { … } | La table des raccourcis — "<pattern>" "<action>" par ligne. Voir Raccourcis clavier. |
submaps { … } | Tables de raccourcis modales (resize / planes / pan / les vôtres). Voir Raccourcis clavier. |
rules { … } | Règles de fenêtre : correspondance par app-id/titre (regex), redéfinition du plan cible / des étiquettes / du flottant / de la taille / de l'ouverture en onglet. Voir Concepts. |
anchors { … } | Signets de vue nommés, ensemencés sur le plan 1. Voir Concepts. |
spawn-at-startup "cmd" "args"… | Lancer un programme une fois au démarrage de la session (une barre, un fond d'écran, …). Répétable ; non relancé au rechargement à chaud. |
outputs { … } | Placer les moniteurs dans l'espace écran combiné par nom de connecteur, et éventuellement définir le plan de départ de chacun. |
idle { timeout command } | Verrouillage automatique intégré : après timeout secondes d'inactivité, exécute command (votre verrouilleur). Désactivé par défaut. |
Une configuration minimale
Vous avez rarement besoin de plus que quelques lignes. Un point de départ courant :
mod "super"
gaps 8
input {
xkb-layout "fr"
}
animations {
enable #true
duration-ms 150
curve "ease-out-cubic"
}
spawn-at-startup "waybar"
spawn-at-startup "swaybg" "-i" "/path/to/wallpaper.png"
binds {
"Mod+d" "spawn:wofi --show drun"
"Mod+Print" "spawn:grim -g \"$(slurp)\" ~/shot.png"
}
Cela conserve tous les raccourcis par défaut, en ajoute deux à vous, choisit Super comme mod, active 8 px d'espacement et les animations, règle azerty, et lance automatiquement une barre et un fond d'écran.
La référence complète
Chaque clé, avec sa valeur par défaut compilée et un commentaire en ligne, figure
dans la référence de configuration — reproduite mot pour mot depuis
DEFAULT_CONFIG (un test unitaire l'empêche de diverger du code). C'est la liste
qui fait autorité :
- Dans le dépôt :
docs/config-reference.md - Ou imprimez-la localement :
atlasctl default-config
La référence est l'endroit où copier la syntaxe exacte de rules, anchors,
outputs, idle, des verbes de ratio largeur/hauteur, des marques, des groupes
et du reste — tout est présenté sous forme d'exemples commentés que vous pouvez
décommenter et modifier.