Skip to content

Releases: ax1g/quickshell-screentime-plugin

v1.4.0

Choose a tag to compare

@ax1g ax1g released this 01 Sep 16:21

Screen Time preview

Added

  • Wrapped-style yearly retro: the Insights year now reads a two-year per-day archive, showing active days, longest streak, top months, average active day, weekday rhythm, the single busiest day, and the year's share of your screen time. Days pruned from daily retention land in the archive instead of month lumps, and month-scale views (totals, bars, oldest year) understand it.
  • Colour-coded insights: the top-app row glows gold, gains green / losses red, and the busiest-day row violet; only signed deltas take colour.

Changed

  • The sticky yearly header gains a small bottom pad, so the hero no longer butts against the scrolling month bars and insights.

Fixed

  • Chromium-family web apps no longer render as malformed names (chrome-music.apple.com__…-Defaultmusic.apple.com), and usage of the same web app across browser profiles folds into one row; dotted non-reverse-DNS names like Minecraft* 26.2 pass through intact.
  • The yearly retro's "average screen day" and "weekday rhythm" scale from day-granular data only, so a year that mixes pre-archive month lumps with archived days no longer inflates them.

Install / update:

omarchy plugin update agx.screen-time

v1.3.0 — Yearly overview, 13-week trend, Steam titles

Choose a tag to compare

@ax1g ax1g released this 21 Aug 13:09

v1.2.2 vs v1.3
v1.2.2 (left) vs v1.3 (right)

Added

  • Yearly overview behind the hero hourglass: < year > navigation back to the first recorded year, one bar per month scaled against the busiest month, exact totals on hover, BACK button.
  • Persistent monthly aggregates: days aging out of retention fold into month totals, so the yearly view covers your whole history.
  • 13-week paginated Mon–Sun trend with ISO week header (Aug 2026 · W34).
  • Clickable week total: flip between duration and its share of the week's 168 hours.
  • Donut cross-highlight: hovering a legend row highlights its ring slice, and vice versa.
  • Steam game titles: steam_app_<id> windows resolve to real titles from local Steam manifests.
  • Hourglass easter egg: turns over on every full hour; gold sparkles scatter around the cursor on hover.

Changed

  • Daily detail retained for 95 days (was 31), matching the 13-week trend window; older days remain part of their monthly totals.
  • Week bars follow the theme: today's bar in the accent colour, other days at low opacity, empty and future days as faint tracks.
  • Fixed-height scrollable app list with vertically centred rows; middle-dot insight labels.

Fixed

  • Steam-aware names actually work now — the previous lookup ran Node-only APIs inside QML's engine and broke labels instead of showing game titles.

Install / update:

omarchy plugin update agx.screen-time

v1.2.2

Choose a tag to compare

@ax1g ax1g released this 19 Aug 14:47

Fixed

  • Live screen-time tracking now continues after each timer tick and correctly resumes after app resolution.

v1.2.1

Choose a tag to compare

@ax1g ax1g released this 19 Aug 14:41

Changed

  • State.js state-machine module: bucket lifecycle, suspend detection, and midnight rollover extracted from Service.qml into pure, testable functions.
  • lib/browser_aliases.json as single source of truth for browser canonicalization; Model.js and resolve_app.py read from it.
  • State.js unit tests and data-safety test coverage for pruning, midnight rollover, and corrupt-input recovery.
  • Project reorganized: Model.jslib/Model.js, resolve_app.pyscripts/resolve_app.py.

Fixed

  • Deprecated Qt.include() replaced with inline JSON to silence QML warnings.
  • persist() calls restored after State.js extraction accidentally dropped them.
  • closeActiveBucket consolidated through State.closeActiveBucket in rollover; remaining root.closeActiveBucket references removed.
  • Service wired to State.applyResolvedApp; resolver aliases guarded against missing entries.
  • Shadowed variable d renamed to dt in commitElapsed.

v1.2.0

Choose a tag to compare

@ax1g ax1g released this 18 Aug 19:10
418336d

What's New

Added

  • Interactive week-trend bars: click any day to view that day's apps, donut, hero total, and insights; click again or close the panel to return to today's live data. Active bar highlighted with an accent dot indicator.
  • Scrollable app list: bounded legend with a thin scrollbar; Show More toggles the full app list inline (renamed from Patterns).
  • Clean app names: reverse-DNS compositor IDs shortened to the last segment and title-cased (com.github.user.CodiumCodium).
  • Donut slices below 3% auto-collapse into the "Other" bucket so the chart stays readable with many small apps.
  • Donut centre now shows the full date ("Aug 15") instead of a hardcoded "TODAY" label.
  • Insights always show three rows; missing data shows an em-dash placeholder instead of omitting the row.
  • Empty donut draws a dim ring so the chart area is visible even with no tracked data for the selected day.

Changed

  • Panel close resets selected day only (expanded state preserved) so the panel always opens showing today's live data.
  • Hero hourglass icon enlarged for better readability; subtitle font reduced to caption size.
  • Insights labels use weekday names for all non-today items: "Top app (Fri)", "vs (Thu)"; today keeps "Top app" / "vs yesterday".
  • Extra spacing between insights icon and label text.

Fixed

  • Week-trend bars no longer vanish when the selected past day has data; the section stays visible so the user can switch days.
  • Insight icons (star, arrow, circle) render correctly with day-name labels via prefix matching instead of exact equality.
  • Scrollbar ratio guarded against Infinity when content is empty.
  • busiestWeekDay guarded against empty todayKey input.

Full changelog: https://github.com/ax1g/quickshell-screentime-plugin/blob/main/CHANGELOG.md