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.

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 de appearance mantiene 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+q en azerty es la tecla que escribe q. 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 entorno XKB_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.

BloqueQué 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 200Píxeles desplazados por cada acción de paneo.
gaps 0Espaciado (px) entre ventanas tiladas. 0 = sin espacio.
zoom-steps 1.0 0.5La 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:

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.