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
# home_minimal — the quiet sibling of home_splash / home_daily / home_github. No figlet,
# no heatmap, no multi-column body. Three centred lines and a lot of whitespace, so every
# `cd` home feels like taking a breath instead of opening a dashboard. Zero config — every
# widget works out of the box; users who want weather or a custom greeting edit
# `$HOME/.splashboard/home.dashboard.toml` directly.
# ── Widgets ────────────────────────────────────────────────────────
# "good morning" / "good afternoon" / "good evening" / "good night" — built from the
# wall clock via `clock_derived` so the splash reads context-aware without a greeting
# fetcher of its own. Prefix + value are two widgets so the seam stays tight (right-
# aligned "good " meets left-aligned "evening").
[[]]
= "greeting_prefix"
= "basic_static"
= "good "
= { = "text_plain", = "right" }
[[]]
= "greeting"
= "clock_derived"
= { = "text_plain", = "left", = "panel_title" }
[]
= "time_of_day"
# One-line date + time. `clock` is a RealtimeFetcher so the minute ticks over without a
# cache refresh — the splash feels live even though nothing else on screen moves.
[[]]
= "datetime"
= "clock"
= "%A · %e %B %Y · %H:%M"
= { = "text_plain", = "center" }
# `random_quote` Text shape emits a single deterministic-per-day line "… — Author".
# TextBlock would wrap onto two lines; the single-line Text shape is what suits the
# minimal layout.
[[]]
= "quote"
= "random_quote"
= "text"
= { = "text_plain", = "center" }
# ── Layout ─────────────────────────────────────────────────────────
# Top padding — pushes the content toward vertical centre without a hard-coded row
# count (terminal heights vary).
[[]]
= { = 1 }
# Greeting: `good ` (right-aligned, 5 cells) meets `evening` (left-aligned, 12 cells)
# so "good evening" sits as a single crisp seam instead of two centred fragments.
[[]]
= { = 1 }
= "center"
[[]]
= "greeting_prefix"
= { = 5 }
[[]]
= "greeting"
= { = 12 }
[[]]
= { = 1 }
[[]]
= { = 1 }
[[]]
= "datetime"
[[]]
= { = 2 }
# Quote — centred on the 80-col content band so long quotes don't wrap against narrower
# terminals but still sit visually anchored inside a wider one.
[[]]
= { = 2 }
= "center"
[[]]
= "quote"
= { = 80 }
# Bottom padding — matches the top so the block sits vertically centred.
[[]]
= { = 1 }