Conceptos
Planos, etiquetas, blocs gather/summon, la vista general, anclas, marcas, reglas de ventanas y grupos — las primitivas que compones en un flujo de trabajo.
En esta página
El modelo mental cubre un solo plano: filas, columnas, celdas, divisiones, pestañas, flotantes. Esta página es todo lo que construyes encima de eso — las primitivas que convierten a atlaswm de un tilador en una caja de herramientas. Ninguna de estas es un modo en el que quedas atrapado; se componen.
Planos
Un solo plano infinito rara vez basta. Un plano es un lienzo completo e independiente — con sus propias ventanas, su propia posición de paneo, su propio zoom. atlaswm mantiene un pool de ellos y muestra exactamente uno a la vez: el plano activo llena la vista, el resto descansa inactivo en segundo plano. Cambiar es instantáneo y sin pérdidas — cada plano recuerda dónde lo dejaste, así que vuelves a las mismas ventanas con el mismo paneo y zoom. Piensa en los workspaces de i3/sway o en los workspaces con nombre de niri, salvo que cada uno es un atlas 2D completo en lugar de una pantalla.
El punto de entrada cotidiano es el submodo planes (Mod+o): l/h
cambian, n crea, q cierra un plano vacío, Shift+l/Shift+h mueven la
ventana enfocada al plano siguiente/anterior y la siguen. Más atajos rápidos
fuera del submodo: Mod+period / Mod+comma.
Dos acciones más, para atajos o atlasctl action:
plane-switch:<n>— salta al n-ésimo plano (en base 1), creando los planos intermedios por el camino (la sensación de workspaces dinámicos de niri/sway:plane-switch:3desde un solo plano te lleva al plano 3, habiendo creado discretamente el 2 y el 3).plane-close— destruye el plano activo, pero solo si está vacío. En un plano no vacío no hace nada (un plano con ventanas nunca se desmonta en silencio).
Los ids de ventana se mantienen globalmente únicos entre planos, y mover una
ventana entre planos conserva su id — mismo cliente, mismo contenido, nuevo
hogar. Por IPC, atlasctl query planes lista el pool y un campo plane por
ventana te dice el hogar de cada una.
Etiquetas
Una etiqueta es una marca de formato libre que pegas a una ventana — work,
chat, mail, lo que dé nombre a un conjunto de trabajo. Las etiquetas son
independientes de los planos y de la geometría del diseño: etiquetar nunca
mueve una ventana, y el mismo nombre puede ir en ventanas repartidas por distintos
planos. Una ventana puede llevar cualquier número de etiquetas; viajan con ella
por id (moverla, hacerla flotante, ponerla a pantalla completa deja las etiquetas
intactas) y se sueltan cuando se cierra.
Cuatro verbos actúan sobre la ventana enfocada:
tag-toggle:<name>— la añade si falta, la quita si está.tag-add:<name>/tag-remove:<name>— añadir / quitar explícito.tag-clear— quita todas las etiquetas a la vez.
No hay atajos de etiqueta por defecto — los nombres de etiqueta son tuyos,
así que la configuración no puede adivinarlos. Asigna los tuyos ("Mod+F1" "tag-toggle:work") o contrólalos por atlasctl. Las etiquetas son también sobre
lo que operan gather/summon, y lo que las reglas de ventana pueden estampar al
abrir.
Blocs ocultos: gather y summon
Una etiqueta da nombre a un conjunto de trabajo; gather (reunir) y summon (invocar) te dejan ver todo ese conjunto a la vez — temporalmente, sin mover nada. Ambos son un préstamo en vivo: nada abandona su plano de origen, y descartarlo restaura todo exactamente como estaba.
Gather
gather-toggle:<tag> trae cada ventana que lleva <tag> — viva donde viva — a
una vista tilada temporal que reemplaza tu vista actual, y esa vista es
totalmente interactiva: enfocar, redimensionar, mover, agrupar en pestañas y
pantalla completa funcionan en ella. Descártala (la misma etiqueta otra vez, o
gather-dismiss) y cada plano se restaura, con cada ventana de vuelta donde
estaba. Lanzar algo mientras estás en gather aterriza en el plano activo real (así
que un terminal que abres a mitad de gather no se pierde al descartar); cerrar una
ventana reunida la cierra en todas partes; cualquier cambio de plano descarta
primero.
Summon
Donde gather reemplaza tu vista, summon-toggle:<tag> la superpone: hace
flotar cada ventana que lleva <tag> y vive en otro plano sobre tu plano
actual — un vistazo al conjunto de trabajo sin abandonar donde estás. Una ventana
etiquetada que ya está en el plano actual permanece tilada; summon la complementa.
Las ventanas invocadas son flotantes ordinarias, totalmente interactivas. Alterna
la misma etiqueta (o summon-dismiss) para ocultarlas.
Gather y summon son mutuamente excluyentes — solo una vista de bloc oculto a
la vez. No hay atajos por defecto para ninguno; asigna los tuyos o usa atlasctl.
Vista general
Un plano llena la vista; la vista general los muestra todos a la vez.
Altérnala con overview-toggle, o simplemente sigue alejando el zoom — un paso
más allá del ajuste al plano (Mod+z de nuevo en el último peldaño) la abre, así
que la escalera recorre 100% → 50% → ajuste → vista general. Cada plano se
convierte en un minilienzo escalado en vivo dentro de una cuadrícula (las
ventanas siguen renderizando — un watch date sigue avanzando), y el plano activo
lleva un marco de acento.
Es solo para navegar: haz clic en cualquier ventana para saltar a su plano con
ella enfocada, o haz clic en un plano vacío para saltar allí — la vista
general se cierra y aterrizas en un plano real. Mientras está abierta los atajos
normales están inertes; solo actúan las salidas (Escape, acercar el zoom, o
overview-toggle de nuevo). También puedes arrastrar una ventana desde la celda
de un plano a la celda de otro plano para moverla allí — la celda de destino se
resalta mientras arrastras; un clic simple sigue saltando.
No hay atajo por defecto: alejar el zoom más allá del ajuste al plano es el camino descubrible.
Anclas
Un ancla es un marcador de vista con nombre en un plano — un punto al que saltas de vuelta.
anchor-set:<name>registra el centro de la vista actual del plano activo.anchor-jump:<name>recentra la vista sobre él (independiente del zoom — el valor almacenado es una coordenada del plano).anchor-clear:<name>lo elimina.
Las anclas son por plano: el mismo nombre en el plano 2 es un punto distinto que en el plano 1. Puedes sembrar anclas en el plano 1 desde la configuración — útil para un diseño fijo al que siempre vuelves:
anchors {
"hub" x=0 y=0
"mail" x=4000 y=0
}
binds {
"Mod+a" "anchor-jump:hub"
"Mod+e" "anchor-jump:mail"
}
Esta es la columna vertebral de un flujo de trabajo hub-and-satellite: esparce conjuntos de trabajo por un gran plano y salta entre ellos por nombre.
Marcas
Las marcas son al estilo vim: pon una marca en una ventana, salta de vuelta a ella más tarde. La capitalización del nombre elige el alcance:
- minúsculas = local (por plano): el mismo nombre es una ventana distinta en cada plano.
- MAYÚSCULAS = global: una sola tabla para toda la sesión; el salto sigue a la ventana a través de los planos.
mark-set:<name> marca la ventana enfocada
mark-jump:<name> enfoca la ventana marcada (cambia de plano si hace falta)
mark-clear:<name> elimina la marca
No hay atajos de marca por defecto; el montaje típico es un submodo mark para
poner y un submodo jump para saltar (de modo que Mod+m a marca, Mod+' a
salta). Las marcas son solo en tiempo de ejecución (la identidad de las ventanas
no es estable entre reinicios, así que no se siembran desde la configuración). Las
marcas se autoeliminan cuando su ventana se cierra.
Relacionado: jump-to-window (jump-to-window) pone una insignia con una letra
en cada ventana que está actualmente en pantalla; pulsa la letra para enfocar esa
ventana. Es un rápido "enfoca esa" sin recordar una marca.
Reglas de ventana
Empareja una ventana por app-id y/o título (regex) cuando se abre, y sobrescribe dónde y cómo aterriza. Varias reglas coincidentes se encadenan en orden de documento (la última gana en un escalar; las etiquetas de todas las coincidencias se unen). Las reglas se aplican a las ventanas abiertas después de una (re)carga.
rules {
rule {
match app-id="^(firefox|chromium)$"
plane 2
tag "web"
}
rule {
match title=".*Picture-in-Picture.*"
float #true
size 480 270
}
rule {
match app-id="Slack"
open-as-tab #true
tag "comms"
}
}
Sobrescrituras disponibles: plane <n> (plano objetivo en base 1, abierto en
segundo plano — tú te quedas donde estás), tag "<name>" (repetible, se une),
float #true, size <w> <h> (para flotantes), open-as-tab #true (se une al
contenedor enfocado como pestaña). Una regex inválida es un error de configuración
— la última configuración válida sigue ejecutándose, y la corriges mediante recarga
en vivo. Las reglas también emparejan ventanas de XWayland (X11), por su WM_CLASS /
título.
Aún no: el autoetiquetado son los verbos manuales
tag-*más estas reglas; todavía no hay un "abre siempre en el ancla Y" por app (spawn-at-anchor está aplazado). Usa una reglaplane <n>más un atajoanchor-jumppara el equivalente más cercano por ahora.
Grupos
Un grupo es un clúster tilado conectado. Un plano puede contener varios grupos desconectados — clústeres de mosaicos separados sobre el lienzo, el modelo de conjuntos de trabajo al estilo driftwm.
spawn-new-groupinicia un clúster nuevo en la esquina superior izquierda de la vista.group-next/group-prevcambian entre los clústeres de un plano (restaurando el foco de cada grupo).group-to-plane-next/group-to-plane-prev/group-to-plane:<n>mueven el grupo enfocado entero a otro plano intacto (y lo siguen). Los ids de ventana no cambian, así que las etiquetas viajan con ellos.group-tag-toggle:<name>(y-add/-remove/group-tag-clear) etiquetan cada ventana del grupo a la vez. Como eso reutiliza el almacén de etiquetas,gather/summonsobre esa etiqueta es "muestra temporalmente todo este grupo" de forma gratuita.
Un montaje natural empareja estos con un submodo groups de un solo disparo:
binds {
"Mod+g" "submap:groups"
}
submaps {
groups oneshot=#true {
"n" "spawn-new-group"
"l" "group-next"
"h" "group-prev"
"L" "group-to-plane-next"
"t" "group-tag-toggle:work"
"Escape" "submap-exit"
}
}
Aún no: mover ventanas individuales entre grupos, reposicionar un grupo y el foco geométrico entre grupos no están implementados — los grupos se mueven y etiquetan como una unidad, pero hoy no barajas ventanas a través de las fronteras de los grupos.
A dónde ir después
Estas primitivas son deliberadamente pequeñas para que puedas combinarlas. Las recetas de flujo de trabajo muestran cuatro maneras de hacer exactamente eso, cada una con una configuración lista para copiar y pegar.