Installation

Lancez atlaswm imbriqué dans une fenêtre pour le développement, ou installez le flake et choisissez-le à votre greeter comme vraie session GPU.

Il y a deux façons de lancer atlaswm, et vous utiliserez les deux : imbriqué dans une fenêtre sous votre compositeur actuel (la voie de développement quotidienne), et comme session DRM/KMS autonome directement sur le GPU (ce que vous utilisez au quotidien). Même binaire, même config — le backend est choisi au lancement.

Imbriqué (voie de développement)

La façon la plus rapide de l'essayer. atlaswm s'ouvre comme une fenêtre sous votre compositeur Wayland existant (Hyprland, sway, GNOME, …) et y exécute le tout : tuilage, plans, zoom, l'ensemble. Mod vaut Alt par défaut en imbriqué (l'hôte possède Super), donc il n'entre jamais en conflit avec les raccourcis de votre hôte.

Avec les flakes Nix :

nix develop -c cargo run -p atlaswm        # ouvre la fenêtre du compositeur imbriqué
nix develop -c cargo test --workspace      # le contrôle des tests

nix develop vous place dans le shell de développement avec la chaîne d'outils Rust et les bibliothèques système dont Smithay a besoin (libinput, libxkbcommon, udev, EGL/GBM, …).

La disposition du clavier suit les variables d'environnement XKB standard tant que vous n'en définissez pas une dans la config :

XKB_DEFAULT_LAYOUT=fr nix develop -c cargo run -p atlaswm   # azerty

Le terminal lancé par Alt+Return est $ATLASWM_TERM, avec repli sur foot / alacritty / kitty / weston-terminal.

Testez d'abord en imbriqué, toujours. Le rendu, les vrais clients et la sensation d'entrée ne peuvent pas être testés unitairement — le lancer sous votre compositeur actuel est la façon de le voir fonctionner, sans aucun risque pour votre session.

Test rapide de session TTY

Avant de l'installer comme session de greeter, prouvez que le backend DRM fonctionne sur votre matériel. scripts/test-drm.sh arrête votre gestionnaire d'affichage, lance atlaswm sur le GPU, et restaure le gestionnaire d'affichage à sa sortie :

scripts/test-drm.sh          # 120 s ; passez un nombre pour plus long, ex. 300

Lancez-le depuis un VT séparé (Ctrl+Alt+F3), pas depuis votre bureau. Sortez avec Mod+Shift+e (quitter), Ctrl+C, ou un changement de VT ; il sort aussi automatiquement après le délai, donc vous ne pouvez pas rester coincé.

Installer comme session de greeter (flake NixOS)

Le flake expose un paquet qui installe le binaire atlaswm plus une entrée share/wayland-sessions/atlaswm.desktop (son Exec est atlaswm --session), avec les bibliothèques d'exécution que Smithay charge dynamiquement (dlopen) incluses. Ajoutez-le comme entrée de flake et placez-le sur sessionPackages :

# entrées du flake :
inputs.atlaswm.url = "github:elfangor/atlaswm";

# dans votre configuration NixOS :
services.displayManager.sessionPackages = [
  inputs.atlaswm.packages.${pkgs.system}.default
];

Reconstruisez, puis choisissez atlaswm à votre greeter. Pour juste construire le binaire sans installer une session :

nix build .#atlaswm      # → ./result/bin/atlaswm

Sur une vraie session, mod "auto" résout Mod en Super — donc Super+Return ouvre un terminal, Super+h/j/k/l déplace le focus, Super+Shift+e quitte.

Le wrapper de session

Le atlaswm installé est un wrapper qui définit l'identité de session XDG (XDG_CURRENT_DESKTOP=atlaswm et compagnie) et pointe LD_LIBRARY_PATH vers les bibliothèques d'exécution avant d'exécuter le vrai compositeur avec --session. Cette identité de session importe pour les portails (c'est ce qui route le partage d'écran vers le bon backend — voir Dépannage). Le wrapper redirige aussi la sortie d'erreur de la session vers $XDG_STATE_HOME/atlaswm/session.log (plus .old) pour que vous ayez un journal à lire quand quelque chose se comporte mal.

Notes NVIDIA

atlaswm est développé et utilisé au quotidien sur une NVIDIA RTX 3080 (Ampere) avec les modules noyau nvidia-open — le backend DRM fonctionne sur cette carte précise. L'EGL de NVIDIA est fourni par le pilote système via /run/opengl-driver ; aucun wrapping nixGL n'est nécessaire dans la session. nvidia-drm.modeset=1 devrait déjà être défini si vous exécutez un compositeur Wayland aujourd'hui. Si les clients GL ne démarrent pas avec des erreurs d'allocation EGL, voyez la section NVIDIA du Dépannage.

Astuce thème de curseur

Le backend DRM dessine son propre curseur (le backend imbriqué laisse l'hôte le dessiner), chargeant le thème XCursor depuis XCURSOR_THEME / XCURSOR_SIZE. Si le curseur ressemble à une flèche X par défaut, définissez ces variables d'environnement sur votre thème (par ex. un curseur catppuccin) dans l'environnement de votre session pour que le compositeur le trouve.

Ce que vous obtenez dans les deux cas

Le tuilage sur un réservoir de plans infinis (colonnes, rangées, onglets, divisions récursives), le flottant, le plein écran, le déplacement en X/Y, le redimensionnement clavier et souris, une échelle de zoom se terminant par un aperçu fit-plane, wlr-layer-shell pour les barres/panneaux (waybar, eww, fuzzel), XWayland, le partage d'écran — tout configurable, tout rechargé à chaud.

À suivre : le premier lancement, puis la configuration.