Instalación
Ejecuta atlaswm anidado en una ventana para desarrollo, o instala el flake y elígelo en tu greeter como una sesión GPU real.
En esta página
Hay dos formas de ejecutar atlaswm, y usarás ambas: anidado en una ventana bajo tu compositor actual (la vía de desarrollo del día a día), y como una sesión DRM/KMS independiente directa sobre la GPU (la que usas a diario). El mismo binario, la misma config — el backend se elige al arrancar.
Anidado (vía de desarrollo)
La forma más rápida de probarlo. atlaswm se abre como una ventana bajo tu
compositor Wayland actual (Hyprland, sway, GNOME, …) y ejecuta todo dentro:
tilado, planos, zoom, todo. Mod es Alt por defecto cuando está anidado (el
anfitrión se queda Super), así que nunca pelea con los atajos de tu anfitrión.
Con flakes de Nix:
nix develop -c cargo run -p atlaswm # abre la ventana del compositor anidado
nix develop -c cargo test --workspace # la verificación de tests
nix develop te deja en el dev shell con el toolchain de Rust y las librerías de
sistema que Smithay necesita (libinput, libxkbcommon, udev, EGL/GBM, …).
La distribución de teclado sigue las variables de entorno XKB estándar hasta que fijes una en la config:
XKB_DEFAULT_LAYOUT=fr nix develop -c cargo run -p atlaswm # azerty
La terminal que lanza Alt+Return es $ATLASWM_TERM, con respaldo a
foot / alacritty / kitty / weston-terminal.
Prueba anidado primero, siempre. El renderizado, los clientes reales y la sensación de la entrada no se pueden testear unitariamente — ejecutarlo bajo tu compositor actual es cómo lo ves funcionar, sin ningún riesgo para tu sesión.
Prueba rápida de sesión en TTY
Antes de instalarlo como una sesión de greeter, comprueba que el backend DRM
funciona en tu hardware. scripts/test-drm.sh detiene tu display manager, ejecuta
atlaswm sobre la GPU, y restaura el display manager al salir:
scripts/test-drm.sh # 120s; pasa un número para más tiempo, p. ej. 300
Ejecútalo desde una VT separada (Ctrl+Alt+F3), no desde dentro de tu
escritorio. Sal con Mod+Shift+e (salir), Ctrl+C, o un cambio de VT; además
sale automáticamente tras el tiempo límite, así que no puedes quedarte atascado.
Instalar como sesión de greeter (flake de NixOS)
El flake expone un paquete que instala el binario atlaswm más una entrada
share/wayland-sessions/atlaswm.desktop (su Exec es atlaswm --session), con
las librerías de tiempo de ejecución que Smithay carga con dlopen empaquetadas.
Añádelo como una entrada del flake y ponlo en sessionPackages:
# entradas del flake:
inputs.atlaswm.url = "github:elfangor/atlaswm";
# en tu configuración de NixOS:
services.displayManager.sessionPackages = [
inputs.atlaswm.packages.${pkgs.system}.default
];
Reconstruye, luego elige atlaswm en tu greeter. Para solo compilar el binario sin instalar una sesión:
nix build .#atlaswm # → ./result/bin/atlaswm
En una sesión real, mod "auto" resuelve Mod a Super — así que
Super+Return abre una terminal, Super+h/j/k/l mueve el foco, Super+Shift+e
sale.
El wrapper de sesión
El atlaswm instalado es un wrapper que fija la identidad de sesión XDG
(XDG_CURRENT_DESKTOP=atlaswm y compañía) y apunta LD_LIBRARY_PATH a las
librerías de tiempo de ejecución antes de ejecutar el compositor real con
--session. Esa identidad de sesión importa para los portales (es lo que
encamina compartir pantalla al backend correcto — mira
Solución de problemas). El wrapper también redirige
el stderr de la sesión a $XDG_STATE_HOME/atlaswm/session.log (más .old) para
que tengas un registro que leer cuando algo se porte mal.
Notas sobre NVIDIA
atlaswm se desarrolla y se usa a diario en una NVIDIA RTX 3080 (Ampere) sobre los
módulos del kernel nvidia-open — el backend DRM funciona en esa tarjeta exacta.
El EGL de NVIDIA lo provee el driver del sistema vía /run/opengl-driver; no hace
falta envolver con nixGL en la sesión. nvidia-drm.modeset=1 ya debería estar
puesto si hoy ejecutas algún compositor Wayland. Si los clientes GL fallan al
arrancar con errores de asignación de EGL, mira la
sección de NVIDIA de Solución de problemas.
Consejo sobre el tema de cursor
El backend DRM dibuja su propio cursor (el backend anidado deja que lo dibuje el
anfitrión), cargando el tema XCursor desde XCURSOR_THEME / XCURSOR_SIZE. Si el
cursor parece una flecha X por defecto, fija esas variables de entorno a tu tema
(p. ej. un cursor catppuccin) en el entorno de tu sesión para que el compositor lo
encuentre.
Lo que obtienes en cualquier caso
Tilado sobre un conjunto de planos infinitos (columnas, filas, pestañas, divisiones recursivas), flotantes, pantalla completa, desplazamiento en X/Y, redimensionado con teclado y ratón, una escalera de zoom que termina en una vista general de plano ajustado, wlr-layer-shell para barras/paneles (waybar, eww, fuzzel), XWayland, compartir pantalla — todo configurable, todo recargado en vivo.
Siguiente: la primera ejecución, luego configuración.