Skip to content

Releases

v0.2.0 (alpha)

v0.2.0 (alpha) Pre-release
Pre-release

Choose a tag to compare

@Lakeland97 Lakeland97 released this 12 Oct 17:16

Alpha build for real-world field testing on Steam Deck.

Update (Oct 14): no self-lockout

  • Enabling parental controls now REQUIRES a passcode — the previous build could be enabled with none, leaving no unlock path except Desktop-Mode file editing
  • Clearing an existing passcode while controls are enabled is now refused (setting a new one stays allowed — that's the recovery path)
  • Whitespace-only passcodes are treated as empty; inputs are trimmed end-to-end
  • Fixed: a WRONG passcode in the unlock dialog previously closed the dialog and unlocked anyway (backend always refused — the UI lied). It now visibly fails.

What's new since v0.1.0 (alpha)

Enforcement (the plugin's reason to exist)

  • Launch-menu "Cancel" and blocked launches (curfew / out of credits / cooldown) now actually stop the game instead of letting it run unlimited
  • "Start Full" with insufficient credits is blocked, not swallowed
  • Game termination is verified (SIGTERM → rescan → SIGKILL → verify) with a 60s retry loop — a failed kill can no longer end enforcement
  • Fair cap/curfew kills are streak-neutral (runaway days still break the streak)

Crash-safety / low breakage (plugin handles its own errors)

  • Every background task supervised; startup runs in independently guarded stages
  • Stale focus AND stale game-limits sessions reconciled at boot (power-off mid-session can't cause boot-time modals, toast spam, or pre-outage kills)
  • Corrupt settings.json restored from an automatic .bak snapshot; full read-boundary type sanitizer; all settings mutations serialized behind a lock
  • Frontend: Steam callback wrapped, dismount hardened, promise hygiene, listener lifecycle balanced — SharedJSContext stays intact

Security / parental controls

  • Passcode stored as salted SHA-256 (household-grade, honestly labeled)
  • Locked users can no longer bypass protections through update_settings, import, or factory reset; raw settings RPCs privatized

First-run UX

  • Installed-games picker list with search, curfew day-mask UI, in-game overlay badge (remaining time / credits / curfew)
  • Backup paths contained (~/Documents, ~/Downloads) with clear refusal messages; custom-sound traversal blocked

Tester kit

  • TESTING.md at repo root: 10 numbered manual test scenarios + known limitations — run it in order

Install

Decky Loader → Settings → General → "Install from Zip" → select timeout-decky-plugin.zip (NOT the source zip) → restart Decky Loader.

Alpha caveats: passcode is household-grade; store listing items pending; see TESTING.md known-limitations before relying on it.

v0.1.0 (alpha)

v0.1.0 (alpha) Pre-release
Pre-release

Choose a tag to compare

@Lakeland97 Lakeland97 released this 13 Aug 04:45

First alpha prerelease of Timeout — play-time limits, focus modes, and parental controls for Steam Deck.

Alpha build — expect rough edges.

What's in here

  • ⚡ Focus — sessions, statistics, background persistence, take-a-break
  • 🎮 Game Limits — game selection (whitelist/blacklist), opens budget, session time cap, half-opens, cooldowns, curfew, per-limit active windows (opens & time cap each get an optional time-of-day window), 5-min concession
  • 🎯 Focus enforcement tiers — soft / medium / hard
  • 🔒 Parental controls — self-control + administrative lockout
  • 🧘 Mindfulness pause — customizable prompt + cooldown countdown before distractions / limit bypasses (game launch, parental unlock, stopping/skipping a focus session)
  • 🔥 Streaks (game-limits), custom sounds, SteamOS sleep inhibition, backup & restore

Notes

  • Parental passcode is stored in plaintext.
  • WIP: the unified streak metric is planned.

Install

  1. Download timeout-decky-plugin.zip below.
  2. Decky Loader → Settings → General → "Install from Zip" → select the zip (not the source code).
  3. Restart Decky Loader.

Feedback and bug reports: open an issue.