splashboard 2.10.2

A customizable terminal splash screen with plugin-based data sources
Documentation
# 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").
[[widget]]
id = "greeting_prefix"
fetcher = "basic_static"
format = "good "
render = { type = "text_plain", align = "right" }

[[widget]]
id = "greeting"
fetcher = "clock_derived"
render = { type = "text_plain", align = "left", color = "panel_title" }
  [widget.options]
  kind = "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.
[[widget]]
id = "datetime"
fetcher = "clock"
format = "%A · %e %B %Y · %H:%M"
render = { type = "text_plain", align = "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.
[[widget]]
id = "quote"
fetcher = "random_quote"
shape = "text"
render = { type = "text_plain", align = "center" }

# ── Layout ─────────────────────────────────────────────────────────

# Top padding — pushes the content toward vertical centre without a hard-coded row
# count (terminal heights vary).
[[row]]
height = { fill = 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.
[[row]]
height = { length = 1 }
flex = "center"
  [[row.child]]
  widget = "greeting_prefix"
  width = { length = 5 }
  [[row.child]]
  widget = "greeting"
  width = { length = 12 }

[[row]]
height = { length = 1 }

[[row]]
height = { length = 1 }
  [[row.child]]
  widget = "datetime"

[[row]]
height = { length = 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.
[[row]]
height = { length = 2 }
flex = "center"
  [[row.child]]
  widget = "quote"
  width = { length = 80 }

# Bottom padding — matches the top so the block sits vertically centred.
[[row]]
height = { fill = 1 }