Recette : façon i3 / sway

Les plans comme espaces de travail numérotés, divisions h/v récursives et onglets au niveau du WM, raccourcis i3 familiers — le tuilage manuel sur une toile infinie.

i3 et sway sont des tuileurs manuels : vous divisez des conteneurs horizontalement ou verticalement, les imbriquez, réduisez les piles en onglets, et paginez entre des espaces de travail numérotés. atlaswm possède toutes ces pièces — divisions récursives, onglets au niveau du WM, et un réservoir de plans que vous pilotez comme des espaces de travail — de sorte qu'il correspond proprement à la mémoire musculaire i3, avec un plan infini sous chaque espace de travail au lieu d'un écran fixe.

La sensation

Mod+1Mod+9 sautent entre les plans-espaces-de-travail. Au sein d'un plan, vous divisez la cellule focalisée horizontalement ou verticalement et la nouvelle fenêtre atterrit sur place, façon i3 ; les divisions imbriquées vous donnent l'arbre de conteneurs classique. Réduisez une colonne en onglets quand elle est encombrée. C'est le contrôle de disposition délibéré et manuel pour lequel i3 est apprécié — la différence est que chaque espace de travail est un atlas 2D, donc un espace de travail ne « manque jamais de place ».

Les primitives atlaswm utilisées

  • Les plans comme espaces de travail (plane-switch:<n>, indexé à partir de 1, créé automatiquement à la demande).
  • Les divisions récursives sur place (spawn-split-h / spawn-split-v).
  • Les onglets au niveau du WM (toggle-tabs, tab-next / tab-prev).
  • Le focus et le déplacement directionnels (focus-*, move-*).
  • Le déplacement de fenêtre vers un espace de travail (window-to-plane-next / -prev).

Config

mod "super"

binds {
    // Espaces de travail = plans. plane-switch:N est indexé à 1 et crée au passage.
    "Mod+ampersand"  "plane-switch:1"
    "Mod+eacute"     "plane-switch:2"
    "Mod+quotedbl"   "plane-switch:3"
    "Mod+apostrophe" "plane-switch:4"

    // Divisions, sur place (le split-h / split-v de i3 + la nouvelle fenêtre).
    "Mod+Ctrl+Return" "spawn-split-h"
    "Mod+Ctrl+Shift+Return" "spawn-split-v"
    "Mod+Return" "spawn-column"

    // Onglets (disposition empilée/à onglets de i3).
    "Mod+t" "toggle-tabs"
    "Mod+Tab" "tab-next"
    "Mod+Shift+Tab" "tab-prev"

    // Focus + déplacement directionnels, touches vim.
    "Mod+h" "focus-left"
    "Mod+j" "focus-down"
    "Mod+k" "focus-up"
    "Mod+l" "focus-right"
    "Mod+Shift+h" "move-left"
    "Mod+Shift+j" "move-down"
    "Mod+Shift+k" "move-up"
    "Mod+Shift+l" "move-right"

    // Bascule flottant + plein écran, façon i3.
    "Mod+space" "toggle-float"
    "Mod+f" "fullscreen"
}

La mise en garde de la rangée de chiffres. i3 assigne Mod+1Mod+9. Les raccourcis suivent la lettre que la touche produit, pas la position physique — donc sur azerty/fr les touches de la rangée du haut produisent &, é, ", ', … (les chiffres demandent Shift), ce qu'assigne justement l'exemple ci-dessus (ampersand, eacute, quotedbl, apostrophe). Sur une disposition qwerty, utilisez "Mod+1" "plane-switch:1" et ainsi de suite. Faites correspondre les keysyms que votre clavier produit réellement — lancez avec debug { trace #true } pour voir ce qu'une touche rapporte.

GIF

Quand l'utiliser

  • Vous venez de i3 ou sway et vous voulez que vos raccourcis et habitudes s'appliquent.
  • Vous préférez le contrôle de disposition manuel et délibéré au tuilage automatique.
  • Vous voulez des espaces de travail numérotés — mais avec de la place pour vous étaler dans chacun.

Mélangez-les

Ajoutez des règles de fenêtre pour envoyer des applications vers un plan fixe (plane 2 pour le navigateur) comme le fait l'assign de i3 ; utilisez gather/summon comme un scratchpad i3 sous stéroïdes ; ou déplacez/zoomez dans un espace de travail quand un plan se remplit au lieu d'en ouvrir un autre. Voyez aussi façon niri, façon driftwm et moyeu spatial.