Configuración
Un solo archivo KDL recargado en vivo lo controla todo: la tecla mod, la entrada, los atajos, los submodos, la apariencia, las animaciones, las reglas y más.
En esta página
atlaswm lee un solo archivo: $XDG_CONFIG_HOME/atlaswm/config.kdl (es decir,
~/.config/atlaswm/config.kdl). Es KDL, se
recarga en vivo menos de un segundo después de guardarlo, y un error de
análisis nunca tira abajo la sesión: la última configuración válida sigue
ejecutándose y el error queda registrado. Tu archivo solo necesita las líneas
que quieras cambiar; todo lo demás recurre a los valores por defecto compilados.
Para partir de una base documentada:
atlasctl default-config > ~/.config/atlaswm/config.kdl
Cómo se fusiona
- Las secciones sobrescriben. Pon
appearance { border-width 0 }y solo esa clave cambia; el resto deappearancemantiene sus valores por defecto. - Los atajos se fusionan. El mismo patrón de tecla que un valor por defecto = lo sobrescribe; un patrón nuevo = se añade encima. No tienes que volver a listar cada atajo por defecto.
- La configuración inválida es inerte. Un error tipográfico, un verbo desconocido, una expresión regular rota → el análisis falla, el error queda registrado y la configuración cargada previamente sigue ejecutándose. La sesión nunca cae por un error de configuración; corrige el archivo y guárdalo para volver a aplicarlo (recarga en vivo).
Dos cosas sobre las teclas:
- Los atajos siguen la letra, no la tecla física:
Mod+qen azerty es la tecla que escribeq. Bloq Mayús y Bloq Num nunca afectan a los atajos. input { xkb-layout "fr" }es la forma de hacer que azerty funcione sin las variables de entornoXKB_DEFAULT_*.
Los bloques principales
Un mapa rápido de qué vive dónde. Cada uno es opcional; omite un bloque para usar sus valores por defecto.
| Bloque | Qué controla |
|---|---|
mod "auto" | El modificador al que hacen referencia todos los atajos. auto = Alt en modo anidado, Super en una sesión real. Sobrescríbelo con alt o super. |
input { … } | Distribución / variante / opciones de XKB, y repeat-delay / repeat-rate de las teclas. |
pan-step 200 | Píxeles desplazados por cada acción de paneo. |
gaps 0 | Espaciado (px) entre ventanas tiladas. 0 = sin espacio. |
zoom-steps 1.0 0.5 | La escalera de zoom: factores descendentes en (0, 1]. El ajuste al plano siempre se añade como último peldaño. |
resize { step-px step-share } | Pasos de redimensionado por teclado: píxeles para objetivos absolutos, una fracción de proporción para los ponderados. |
animations { enable duration-ms curve } | Suavizado de paneo/zoom/movimiento de ventanas. enable #false (o duration-ms 0) = instantáneo. |
debug { trace #false } | Cuando está activo, añade cada acción y su objetivo resuelto a ~/.local/state/atlaswm/trace.log. |
appearance { … } | Colores de la barra de pestañas, ancho/colores del borde de ventana, el resaltado del objetivo de redimensionado, y la fuente/tamaño/colores/teclas de las etiquetas de salto a ventana. |
binds { … } | La tabla de atajos — "<pattern>" "<action>" por línea. Consulta Atajos. |
submaps { … } | Tablas de atajos modales (resize / planes / pan / la tuya propia). Consulta Atajos. |
rules { … } | Reglas de ventana: coincidencia por app-id/título (regex), sobrescriben el plano objetivo / etiquetas / flotante / tamaño / open-as-tab. Consulta Conceptos. |
anchors { … } | Marcadores de vista con nombre sembrados en el plano 1. Consulta Conceptos. |
spawn-at-startup "cmd" "args"… | Lanza un programa una vez al inicio de la sesión (una barra, un fondo de pantalla, …). Repetible; no se vuelve a ejecutar en la recarga en vivo. |
outputs { … } | Coloca los monitores en el espacio de pantalla combinado por nombre de conector, y opcionalmente fija el plano inicial de cada uno. |
idle { timeout command } | Autobloqueo integrado: tras timeout segundos de inactividad, ejecuta command (tu bloqueador). Desactivado por defecto. |
Una configuración mínima
Rara vez necesitas más de un puñado de líneas. Un punto de partida común:
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"
}
Eso conserva cada atajo por defecto, añade dos propios, elige Super como mod, activa espacios de 8 px y animaciones, configura azerty y autoarranca una barra y un fondo de pantalla.
La referencia completa
Cada clave, con su valor por defecto compilado y un comentario en línea, vive en
la referencia de configuración — reproducida textualmente desde DEFAULT_CONFIG
(un test unitario evita que se desincronice del código). Es la lista autoritativa:
- En el repositorio:
docs/config-reference.md - O imprímela localmente:
atlasctl default-config
La referencia es el lugar para copiar la sintaxis exacta de rules, anchors,
outputs, idle, los verbos de proporción de ancho/alto, las marcas, los grupos
y lo demás — todo mostrado como ejemplos comentados que puedes descomentar y editar.