Skip to main content

max / mountaineer

apkovl: flatwhite themes for foot, helix, zellij, fuzzel, fnott, swaylock Initial pass at the AESTHETICS-spec'd terminal and Wayland-tool themes. All land in the sysadmin overlay tree (not yet referenced by an active manifest profile), share the flatwhite palette, default to Iosevka, and keep ligatures off per the typography pick. - foot: 16-color flatwhite, Iosevka 12, padding 8x8. - helix: relative line numbers, info-density statusline, cursor-shape by mode; new theme `flatwhite` defined with full ui.* + syntax mapping. - zellij: compact layout, no pane frames, theme `flatwhite` defined alongside (mouse off, copy-on-select). - fuzzel: light, icon-less, single-color match highlight in accent. - fnott: borderless rectangles, hue reserved for `critical`. - swaylock: ring-only indicator, color signals state (clear/ver/wrong/ caps), no clock or avatar chrome. Operators override per-tool with one config line; the palette is designed to read as one artifact across all six surfaces.
Author: Max J. <87768334+MaxJMath@users.noreply.github.com> · 2026-05-19 21:33 UTC
Commit: d9c2cdb7c1d6a5a9294d758307b6b0485a99802e
Parent: 96288b3
8 files changed, +324 insertions, -0 deletions
@@ -0,0 +1,41 @@
1 + # Mountaineer fnott — flatwhite, Iosevka, low-key.
2 + # AESTHETICS.md: notifications are passive. Hue = state.
3 +
4 + anchor=top-right
5 + edge-margin-vertical=10
6 + edge-margin-horizontal=10
7 + notification-margin=8
8 + min-width=300
9 + max-width=480
10 + max-icon-size=0
11 + max-timeout=20
12 + default-timeout=5
13 + idle-timeout=0
14 + title-font=Iosevka:size=12:weight=bold
15 + summary-font=Iosevka:size=12
16 + body-font=Iosevka:size=12
17 + padding-x=12
18 + padding-y=10
19 + border-size=1
20 + border-radius=0
21 +
22 + [low]
23 + background=f7f3eeff
24 + title-color=605a52ff
25 + summary-color=605a52ff
26 + body-color=605a52ff
27 + border-color=8c867eff
28 +
29 + [normal]
30 + background=f7f3eeff
31 + title-color=605a52ff
32 + summary-color=605a52ff
33 + body-color=605a52ff
34 + border-color=605a52ff
35 +
36 + [critical]
37 + background=f7f3eeff
38 + title-color=c46a6aff
39 + summary-color=c46a6aff
40 + body-color=605a52ff
41 + border-color=c46a6aff
@@ -0,0 +1,49 @@
1 + # Mountaineer foot — flatwhite, Iosevka, ligatures off.
2 + # AESTHETICS.md: "Typography: clarity over smoothness."
3 +
4 + font=Iosevka:size=12
5 + dpi-aware=auto
6 + pad=8x8
7 +
8 + [scrollback]
9 + lines=10000
10 +
11 + [cursor]
12 + style=block
13 + blink=no
14 + color=f7f3ee 605a52
15 +
16 + [mouse]
17 + hide-when-typing=yes
18 +
19 + [key-bindings]
20 + # Keep foot's defaults; zellij owns the meaningful key surface.
21 +
22 + # --- flatwhite palette ---
23 + [colors]
24 + alpha=1.0
25 + background=f7f3ee
26 + foreground=605a52
27 +
28 + # normal
29 + regular0=605a52
30 + regular1=c46a6a
31 + regular2=5d7a55
32 + regular3=a78a5e
33 + regular4=6587bf
34 + regular5=b7416e
35 + regular6=5c8b9f
36 + regular7=ddd2bc
37 +
38 + # bright
39 + bright0=8c867e
40 + bright1=bf0d27
41 + bright2=7caa90
42 + bright3=cf9b50
43 + bright4=2b6383
44 + bright5=ecb2eb
45 + bright6=7e92ba
46 + bright7=f7f3ee
47 +
48 + selection-background=ddd2bc
49 + selection-foreground=605a52
@@ -0,0 +1,33 @@
1 + # Mountaineer fuzzel — flatwhite, Iosevka, narrow.
2 +
3 + font=Iosevka:size=13
4 + dpi-aware=auto
5 + prompt="› "
6 + icon-theme=
7 + icons-enabled=no
8 + hide-before-typing=no
9 + fields=name,generic,comment,categories,filename,keywords
10 + terminal=foot
11 + launch-prefix=
12 + lines=12
13 + width=40
14 + horizontal-pad=12
15 + vertical-pad=8
16 + inner-pad=4
17 + line-height=20
18 + letter-spacing=0
19 + layer=overlay
20 + exit-on-keyboard-focus-loss=yes
21 +
22 + [colors]
23 + background=f7f3eeff
24 + text=605a52ff
25 + match=6587bfff
26 + selection=ddd2bcff
27 + selection-text=605a52ff
28 + selection-match=6587bfff
29 + border=605a52ff
30 +
31 + [border]
32 + width=1
33 + radius=0
@@ -0,0 +1,35 @@
1 + # Mountaineer helix — flatwhite, info density, visible commands.
2 +
3 + theme = "flatwhite"
4 +
5 + [editor]
6 + line-number = "relative"
7 + mouse = false
8 + bufferline = "multiple"
9 + color-modes = true
10 + cursorline = true
11 + true-color = true
12 + auto-format = true
13 + idle-timeout = 250
14 +
15 + [editor.statusline]
16 + left = ["mode", "spinner", "version-control"]
17 + center = ["file-name"]
18 + right = ["diagnostics", "selections", "position", "file-encoding", "file-line-ending", "file-type"]
19 + mode.normal = "NORMAL"
20 + mode.insert = "INSERT"
21 + mode.select = "SELECT"
22 +
23 + [editor.cursor-shape]
24 + insert = "bar"
25 + normal = "block"
26 + select = "underline"
27 +
28 + [editor.indent-guides]
29 + render = true
30 + character = "│"
31 + skip-levels = 1
32 +
33 + [editor.lsp]
34 + display-messages = true
35 + display-inlay-hints = false
@@ -0,0 +1,93 @@
1 + # Flatwhite for helix. Light, warm, low-saturation.
2 + # Color = state (statusline modes, diagnostics); weight = hierarchy.
3 +
4 + "ui.background" = { bg = "bg" }
5 + "ui.text" = { fg = "fg" }
6 + "ui.text.focus" = { fg = "fg", modifiers = ["bold"] }
7 +
8 + "ui.cursor" = { fg = "bg", bg = "fg" }
9 + "ui.cursor.match" = { bg = "selection_bg" }
10 + "ui.cursor.primary" = { fg = "bg", bg = "fg" }
11 + "ui.cursor.insert" = { fg = "bg", bg = "accent" }
12 + "ui.cursor.select" = { fg = "bg", bg = "warn" }
13 + "ui.cursorline.primary" = { bg = "cursorline" }
14 +
15 + "ui.selection" = { bg = "selection_bg" }
16 + "ui.linenr" = { fg = "dim" }
17 + "ui.linenr.selected" = { fg = "fg", modifiers = ["bold"] }
18 + "ui.gutter" = { bg = "bg" }
19 + "ui.virtual.indent-guide" = { fg = "indent" }
20 + "ui.virtual.ruler" = { bg = "cursorline" }
21 + "ui.virtual.whitespace" = { fg = "indent" }
22 + "ui.virtual.inlay-hint" = { fg = "dim" }
23 +
24 + "ui.statusline" = { fg = "fg", bg = "selection_bg" }
25 + "ui.statusline.inactive" = { fg = "dim", bg = "bg" }
26 + "ui.statusline.normal" = { fg = "bg", bg = "fg", modifiers = ["bold"] }
27 + "ui.statusline.insert" = { fg = "bg", bg = "accent", modifiers = ["bold"] }
28 + "ui.statusline.select" = { fg = "bg", bg = "warn", modifiers = ["bold"] }
29 +
30 + "ui.bufferline" = { fg = "dim", bg = "bg" }
31 + "ui.bufferline.active" = { fg = "fg", bg = "selection_bg", modifiers = ["bold"] }
32 +
33 + "ui.popup" = { fg = "fg", bg = "selection_bg" }
34 + "ui.menu" = { fg = "fg", bg = "selection_bg" }
35 + "ui.menu.selected" = { fg = "bg", bg = "fg" }
36 + "ui.help" = { fg = "fg", bg = "selection_bg" }
37 +
38 + "diagnostic.error" = { underline = { style = "curl", color = "fault" } }
39 + "diagnostic.warning" = { underline = { style = "curl", color = "warn" } }
40 + "diagnostic.info" = { underline = { style = "curl", color = "accent" } }
41 + "diagnostic.hint" = { underline = { style = "curl", color = "ok" } }
42 + "error" = "fault"
43 + "warning" = "warn"
44 + "info" = "accent"
45 + "hint" = "ok"
46 +
47 + # --- syntax ---
48 + "comment" = { fg = "dim", modifiers = ["italic"] }
49 + "string" = { fg = "ok" }
50 + "constant" = { fg = "accent" }
51 + "constant.numeric" = { fg = "accent" }
52 + "constant.character.escape" = { fg = "warn" }
53 + "keyword" = { fg = "magenta", modifiers = ["bold"] }
54 + "keyword.control" = { fg = "magenta", modifiers = ["bold"] }
55 + "keyword.operator" = { fg = "fg" }
56 + "function" = { fg = "accent" }
57 + "function.method" = { fg = "accent" }
58 + "function.macro" = { fg = "warn" }
59 + "type" = { fg = "cyan" }
60 + "type.builtin" = { fg = "cyan" }
61 + "variable" = { fg = "fg" }
62 + "variable.parameter" = { fg = "fg", modifiers = ["italic"] }
63 + "variable.builtin" = { fg = "magenta" }
64 + "namespace" = { fg = "cyan" }
65 + "punctuation" = { fg = "dim" }
66 + "operator" = { fg = "fg" }
67 + "attribute" = { fg = "warn" }
68 + "label" = { fg = "magenta" }
69 + "tag" = { fg = "accent" }
70 +
71 + "markup.heading" = { fg = "fg", modifiers = ["bold"] }
72 + "markup.bold" = { modifiers = ["bold"] }
73 + "markup.italic" = { modifiers = ["italic"] }
74 + "markup.link.url" = { fg = "accent", modifiers = ["underlined"] }
75 + "markup.raw" = { fg = "ok" }
76 +
77 + "diff.plus" = { fg = "ok" }
78 + "diff.delta" = { fg = "warn" }
79 + "diff.minus" = { fg = "fault" }
80 +
81 + [palette]
82 + bg = "#f7f3ee"
83 + fg = "#605a52"
84 + dim = "#8c867e"
85 + selection_bg = "#ddd2bc"
86 + cursorline = "#efe7d8"
87 + indent = "#d6cdbb"
88 + accent = "#6587bf"
89 + ok = "#5d7a55"
90 + warn = "#a78a5e"
91 + fault = "#c46a6a"
92 + magenta = "#b7416e"
93 + cyan = "#5c8b9f"
@@ -0,0 +1,45 @@
1 + # Mountaineer swaylock — flatwhite, no clock chrome, no avatar.
2 + # AESTHETICS.md: lock screen is one of four surfaces. Show that it is locked,
3 + # show the indicator on input, nothing else.
4 +
5 + ignore-empty-password
6 + show-failed-attempts
7 + daemonize
8 +
9 + color=f7f3ee
10 +
11 + font=Iosevka
12 + font-size=14
13 +
14 + # --- indicator (only visible during typing / on event) ---
15 + indicator
16 + indicator-radius=80
17 + indicator-thickness=5
18 +
19 + inside-color=f7f3eeff
20 + inside-clear-color=f7f3eeff
21 + inside-ver-color=f7f3eeff
22 + inside-wrong-color=f7f3eeff
23 + inside-caps-lock-color=f7f3eeff
24 +
25 + ring-color=ddd2bcff
26 + ring-clear-color=ddd2bcff
27 + ring-ver-color=6587bfff
28 + ring-wrong-color=c46a6aff
29 + ring-caps-lock-color=a78a5eff
30 +
31 + key-hl-color=6587bfff
32 + bs-hl-color=c46a6aff
33 + caps-lock-key-hl-color=a78a5eff
34 + caps-lock-bs-hl-color=c46a6aff
35 +
36 + text-color=605a52ff
37 + text-clear-color=605a52ff
38 + text-ver-color=605a52ff
39 + text-wrong-color=605a52ff
40 + text-caps-lock-color=605a52ff
41 +
42 + separator-color=00000000
43 + layout-bg-color=f7f3eeff
44 + layout-text-color=605a52ff
45 + layout-border-color=8c867eff
@@ -0,0 +1,13 @@
1 + // Mountaineer zellij — flatwhite, visible keybinds, no chrome.
2 + // AESTHETICS.md: zellij is the canonical "visible commands" register.
3 +
4 + theme "flatwhite"
5 + default_layout "compact"
6 + mouse_mode false
7 + copy_on_select true
8 + pane_frames false
9 + simplified_ui false
10 + default_shell "nu"
11 +
12 + // Status bar is essential — that's where the keybinding hints live.
13 + // Don't hide it just because the screen is full.
@@ -0,0 +1,15 @@
1 + themes {
2 + flatwhite {
3 + fg "#605a52"
4 + bg "#f7f3ee"
5 + black "#605a52"
6 + red "#c46a6a"
7 + green "#5d7a55"
8 + yellow "#a78a5e"
9 + blue "#6587bf"
10 + magenta "#b7416e"
11 + cyan "#5c8b9f"
12 + white "#ddd2bc"
13 + orange "#cf9b50"
14 + }
15 + }