Skip to content

Color Timer Clock: initial submission - #1892

Closed
RobertAlexanderH wants to merge 4 commits into
linuxmint:masterfrom
RobertAlexanderH:color-timer-clock-initial
Closed

Color Timer Clock: initial submission#1892
RobertAlexanderH wants to merge 4 commits into
linuxmint:masterfrom
RobertAlexanderH:color-timer-clock-initial

Conversation

@RobertAlexanderH

Copy link
Copy Markdown

Summary

  • New desklet: Color Timer Clock — three side-by-side cards (clock, countdown timer, chronometer) whose background colors follow user-defined (time, color) schedules
  • UUID: cinnamon-color-timer-clock-desklet@curbsoftware
  • Clock card colors key on time of day and wrap over midnight; timer colors key on time remaining (e.g. green → yellow at 30 s → red at 0); chronometer colors key on elapsed time
  • Schedules interpolate piecewise-linearly in RGB between stops (red→blue passes through purple) with per-card smooth/stepped toggles; colors are hex or named
  • Text and border colors adapt to the card background by measured WCAG contrast ratio (mid-tones fall back to the solid extreme to stay AA)
  • Timer/chronometer state persists across Cinnamon restarts via hidden settings keys and expires correctly after downtime; optional chronometer hundredths (20 updates/s while running)
  • Cards hide automatically (chronometer, then timer) when the desklet width cannot fit them and return when widened
  • Derived from my own World Clock desklet (PR World Clock: initial submission #1890); license GPL-2.0-or-later

Validation

  • validate-spice cinnamon-color-timer-clock-desklet@curbsoftware — no errors
  • cinnamon-spices-makepot run; pot carries 62 msgids
  • Headless engine suite: 133 assertions (gjs), incl. wrap/midnight/step/smooth math, contrast, narrow-width auto-hide
  • Live driver (org.Cinnamon.Eval): 31/31 checks — schedules, external settings edits, timer/chrono state machines, reload persistence, teardown with zero new JS errors

Test plan

  • Add desklet, configure schedules through the settings window (list widgets, reset button)
  • Smooth ramps visibly animate; step mode jumps exactly at stops
  • Timer survives ReloadXlet to the correct expiry; expiry during downtime restores expired
  • Chronometer accumulates across pause/resume/reload
  • Width sweep 200–2000 px: cards fit at every width, auto-hide at narrow widths
  • Remove desklet: no residual timeouts or log errors

Tested on Cinnamon 6.6.9 (Mint 22.x).

@rcalixte rcalixte closed this Aug 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants