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
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
|
// slosh config, as it currently stands.
//
// Written by `slosh --dump-config`, so every value here is
// the one in force rather than one somebody typed up. Delete
// anything you do not want to pin; what is missing is a
// default, and defaults are allowed to improve.
//
// The commented reference -- what each setting is for, and why
// it exists -- is config/config.kdl in the source tree.
// ---- geometry ----
gap 1
gap_aspect 2 // columns per row, so a gap looks square
padding 0
rounded true
compact false // shared 1-cell borders instead of gaps
title_align "center"
title_inset 2
min_pane cols=24 rows=6 // below this a pane collapses
min_split cols=32 rows=8 // below this a split is not offered
// ---- what is on screen ----
status_bar true // the strip along the top
status_line true // the line along the bottom
status_pad 4
hints true // what the pointer is on, in the middle
version_banner true // ...and which build this is, when idle
pane_buttons true // the marks in a frame's top-right
bell_indicator true
zoom_mark "□"
zoom_on_mark "■"
close_mark "✕"
min_mark "▬"
newtab_mark "+"
bell_mark "[!]"
// ---- behaviour ----
focus_follows_mouse true
in_band_shaders false
ctrl_d_exits false // ^D at an idle prompt exits the shell; default on Windows only
scroll_lines 3
scrollback 10000 // lines of history per pane; 0 for none
scrollback_bytes 16777216 // the ceiling that count runs into; 0 for none
toast_ms 2500
splash_ms 900 // the logo, on attach; 0 for never
hover_delay_ms 250
select_scroll_ms 50 // drag past an edge: ms per scroll step
double_click_ms 400
word_separators "\"'`()[]{}<>;,|" // what a double-click's word stops at
anim_ms 50 // frame clock while a shader animates
modal_scrim 120 // how far a modal pushes the rest back
dim_unfocused 60 // ...and how far the panes you are not in
float_shadow 110 // the shade a floating pane casts; 0 for none
keep_dead "commands" // which dead panes stay: commands, all, none
// shell "/bin/zsh" // unset: $SHELL
// editor "nvim" // unset: $EDITOR, then vi
// shader_dir "~/.config/slosh/shaders"
// project_roots "~/dev" "~/work" depth=2
// project_layout "~/.config/slosh/project.layout"
// ---- colour ----
theme {
default_fg "#ffffff"
default_bg "#000000"
frame_focus "#7aa2f7"
frame_idle "#45454a"
title "#ffffff"
title_idle "#45454a"
button_fg "#141418"
button_bg "#7aa2f7"
button_bg_idle "#55555c"
guide "#7aa2f7"
resize "#7aa2f7"
drop_target "#7aa2f7"
scroll_fg "#141418"
scroll_bg "#7aa2f7"
header "#45454a"
header_hover "#7aa2f7"
header_hover_title "#ffffff"
tab_active_fg "#141418"
tab_active_bg "#7aa2f7"
tab_active_hover_fg "#ffffff"
tab_idle "#45454a"
tab_hover "#7aa2f7"
prefix_fg "#141418"
prefix_bg "#7aa2f7"
tab_count "#45454a"
status "#45454a"
status_state "#ffffff"
finder_fg "#ffffff"
finder_bg "#45454a"
finder_sel_fg "#141418"
finder_sel_bg "#7aa2f7"
bell "#e0af68"
modal_fg "#e8e8ea"
modal_bg "#1c1c22"
modal_border "#7aa2f7"
modal_title "#ffffff"
modal_button "#8a8a95"
modal_button_hover "#7aa2f7"
dead "#ff875f"
hint "#ffffff"
minbar "#45454a"
minbar_hover "#7aa2f7"
pane_button "#45454a"
pane_button_hover "#7aa2f7"
rename_fg "#141418"
rename_bg "#7aa2f7"
toast_fg "#141418"
toast_bg "#7aa2f7"
}
// ---- colour passes over every pane ----
// (contrib/shaders has thirty-odd to paste; contrib/shadertoy.html
// previews them. where="chrome" runs a pass over the frame
// instead of the contents)
shaders {
}
// ---- what a pane looks like in a given state ----
states {
dragging {
}
drop_hover {
grayscale amount=200
dim amount=140
}
drop_target {
grayscale amount=200
dim amount=140
}
dead {
grayscale amount=200
dim amount=90
}
suspended {
grayscale amount=170
dim amount=60
}
// bell { // derived: a body shimmer, and a frame blink-then-breathe, in theme's bell colour
// tint amount="(since < 900) * max(0, 95 - abs(x + 2 * y - since / 4) * (6 + sin(since / 2) / 96) - since / 64)" color="#efd7b3"
// tint amount="since < 900 ? (since / 150 % 2 == 0) * 255 : 120 + sin(since / 8 + 158) / 3" color="#e0af68" where="chrome" channel="fg"
// }
// scrolled { // derived: a wash of theme's scroll_bg, and edge fades where more content is
// tint amount=22 color="#7aa2f7"
// dim amount="(above > 0) * max(0, (min(4, rows / 4) - y) * 60)"
// dim amount="(below > 0) * max(0, (y - rows + min(4, rows / 4) + 1) * 60)"
// }
floating {
}
// unfocused { // derived: the dim_unfocused knob above
// dim amount=60
// }
}
// ---- keys ----
keys {
prefix "ctrl+a"
bind "enter" "split"
bind "backslash" "split-cols"
bind "minus" "split-rows"
bind "x" "close-pane"
bind "shift+slash" "help"
bind "slash" "help"
bind "r" "rerun"
bind "z" "zoom"
bind "e" "edit-config"
bind "m" "minimize"
bind "f" "float"
bind "h" "focus-left"
bind "l" "focus-right"
bind "k" "focus-up"
bind "j" "focus-down"
bind "left" "focus-left"
bind "right" "focus-right"
bind "up" "focus-up"
bind "down" "focus-down"
bind "o" "focus-next"
bind "shift+h" "resize-left"
bind "shift+l" "resize-right"
bind "shift+k" "resize-up"
bind "shift+j" "resize-down"
bind "shift+left" "resize-left"
bind "shift+right" "resize-right"
bind "shift+up" "resize-up"
bind "shift+down" "resize-down"
bind "=" "float-grow"
bind "shift+=" "float-grow"
bind "0" "equalize"
bind "shift+f" "new-float"
bind "space" "rotate-layout"
bind "shift+period" "pane-to-next-tab"
bind "shift+comma" "pane-to-prev-tab"
bind "period" "pane-to-next-tab"
bind "comma" "pane-to-prev-tab"
bind "b" "pane-to-new-tab"
bind "c" "new-tab"
bind "shift+x" "close-tab"
bind "tab" "next-tab"
bind "shift+tab" "prev-tab"
bind "w" "workspaces"
bind "shift+w" "save-workspace"
bind "s" "finder"
bind "p" "palette"
bind "shift+p" "set-purpose"
bind "pageup" "scroll-page-up"
bind "pagedown" "scroll-page-down"
bind "home" "scroll-top"
bind "end" "scroll-bottom"
bind "d" "detach"
bind "q" "quit"
bind "1" "select-tab-1"
bind "2" "select-tab-2"
bind "3" "select-tab-3"
bind "4" "select-tab-4"
bind "5" "select-tab-5"
bind "6" "select-tab-6"
bind "7" "select-tab-7"
bind "8" "select-tab-8"
bind "9" "select-tab-9"
}
|