aboutsummaryrefslogtreecommitdiffstats
path: root/config/layouts/default.swap.kdl
blob: 1a5714b5817b919e20a0f1179302c941e2da3282 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
// ~/.config/sl0ppij/layouts/default.swap.kdl
// Zellij's stock swap layouts, restored.
//
// Defining layouts/default.kdl overrides the built-in default layout, which
// silently takes the built-in swap layouts with it and leaves Alt-[ / Alt-]
// doing nothing. This file is `zellij setup --dump-swap-layout default` with
// the hardcoded `ui` tab_template stripped, so each swap layout inherits the
// zjstatus `default_tab_template` from default.kdl instead of re-adding
// zellij's own tab-bar/status-bar.
//
// Regenerate with:
//   zellij setup --dump-swap-layout default
// then delete the `tab_template name="ui"` block and s/^ui /tab /.

swap_tiled_layout name="vertical" {
    tab max_panes=5 {
        pane split_direction="vertical" {
            pane
            pane { children; }
        }
    }
    tab max_panes=8 {
        pane split_direction="vertical" {
            pane { children; }
            pane { pane; pane; pane; pane; }
        }
    }
    tab max_panes=12 {
        pane split_direction="vertical" {
            pane { children; }
            pane { pane; pane; pane; pane; }
            pane { pane; pane; pane; pane; }
        }
    }
}

swap_tiled_layout name="horizontal" {
    tab max_panes=4 {
        pane
        pane
    }
    tab max_panes=8 {
        pane {
            pane split_direction="vertical" { children; }
            pane split_direction="vertical" { pane; pane; pane; pane; }
        }
    }
    tab max_panes=12 {
        pane {
            pane split_direction="vertical" { children; }
            pane split_direction="vertical" { pane; pane; pane; pane; }
            pane split_direction="vertical" { pane; pane; pane; pane; }
        }
    }
}

// min_panes lowered 4 -> 2 for the responsive-layout collapse: the switch finds
// this layout by name, but still has to satisfy this constraint, so at 4 a
// narrow 2- or 3-pane tab would silently refuse to collapse.
swap_tiled_layout name="stacked" {
    tab min_panes=2 {
        pane stacked=true { children; }
    }
}

swap_tiled_layout name="half-stacked" {
    tab min_panes=5 {
        pane split_direction="vertical" {
            pane
            pane stacked=true { children; }
        }
    }
}

swap_floating_layout name="staggered" {
    floating_panes
}

swap_floating_layout name="enlarged" {
    floating_panes max_panes=10 {
        pane { x "5%"; y 1; width "90%"; height "90%"; }
        pane { x "5%"; y 2; width "90%"; height "90%"; }
        pane { x "5%"; y 3; width "90%"; height "90%"; }
        pane { x "5%"; y 4; width "90%"; height "90%"; }
        pane { x "5%"; y 5; width "90%"; height "90%"; }
        pane { x "5%"; y 6; width "90%"; height "90%"; }
        pane { x "5%"; y 7; width "90%"; height "90%"; }
        pane { x "5%"; y 8; width "90%"; height "90%"; }
        pane { x "5%"; y 9; width "90%"; height "90%"; }
        pane { x 10; y 10; width "90%"; height "90%"; }
    }
}

swap_floating_layout name="spread" {
    floating_panes max_panes=1 {
        pane {y "50%"; x "50%"; }
    }
    floating_panes max_panes=2 {
        pane { x "1%"; y "25%"; width "45%"; }
        pane { x "50%"; y "25%"; width "45%"; }
    }
    floating_panes max_panes=3 {
        pane { y "55%"; width "45%"; height "45%"; }
        pane { x "1%"; y "1%"; width "45%"; }
        pane { x "50%"; y "1%"; width "45%"; }
    }
    floating_panes max_panes=4 {
        pane { x "1%"; y "55%"; width "45%"; height "45%"; }
        pane { x "50%"; y "55%"; width "45%"; height "45%"; }
        pane { x "1%"; y "1%"; width "45%"; height "45%"; }
        pane { x "50%"; y "1%"; width "45%"; height "45%"; }
    }
}

// sl0p fork: `arrangement` builds a tree for N panes, instead of the default
// "every extra pane becomes a flat sibling".
swap_tiled_layout name="grid" {
    tab min_panes=3 {
        pane arrangement="grid" {
            children
        }
    }
}

swap_tiled_layout name="master-stack" {
    tab min_panes=2 {
        pane arrangement="master-stack" {
            children
        }
    }
}