theme: Mute colours and animations (#798)

A new switch at the top of Settings > Theme > Colour for a calm, old-desktop
look, saved as ui_mute (default off) and applied at the next boot like the
rest of the theme:

- No animations: no boot splash, lock screen motion, Home radar sweep,
  live-dot breathing, advert ring, PIN shake or glance fades; scrolls, tab
  changes, Lua app scrolls and switch knobs jump instead of sliding.
- Constellation screensaver goes calm: no pulse, sweep, pings or packets; the
  burn-in steps (turn, drift, corner moves) stay, without the fade.
- Muted colours: a grey-blue accent, Regular look, and the link, mention,
  status and bubble colours pulled towards grey, in Day and Night.
- Solid panels: no background, no glass tiles, and popup backdrops are the
  theme background instead of see-through black.

While it is on, the accent, looks, rainbow, background and glass controls are
locked with a note; their saved values come back when it is turned off. High
contrast keeps its own colours but still loses the animations. T-Deck Pro is
unchanged (no Colour section).

Placeholder rows for the 3 new strings in the 15 language files; the
Constellation render harness takes CST_CALM=1.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Signed-off-by: Michael A. Cojocari <michael.cojocari@gmail.com>
This commit is contained in:
Michael A. CojocariandCopilot committed 2026-11-03 15:52:41 -05:00
1 parent 53d17d0b0f
commit 4644affad9
22 files changed
+274 -104

No files matched your search

+2
View File
@@ -85,8 +85,10 @@ int main(int argc, char** argv) {
&lv_font_montserrat_12, &ui_semibold_12};
// CST_UPTIME_MS: how long the device has been up, which sets how far the slow turn
// has gone (it follows the time since boot). CST_NORTH_LOCK=1: Keep north up (#706).
// CST_CALM=1: nothing moves.
if (const char* up = getenv("CST_UPTIME_MS")) lv_tick_inc((uint32_t)strtoul(up, nullptr, 10));
th.north_lock = getenv("CST_NORTH_LOCK") && getenv("CST_NORTH_LOCK")[0] == '1';
th.calm = getenv("CST_CALM") && getenv("CST_CALM")[0] == '1'; // Mute colours and animations (#798)
cstShow(lv_layer_top(), th);
// Index: 0 repeater (direct) 1 repeater (via 0)