Skip to content

Repository files navigation

Working Timer logo

Working Timer

A focused, forward‑counting timer for Windows — rebuilt on Sprout with Fluent Design.

Platform .NET NativeAOT UI License

Get it from the Microsoft Store

English · 简体中文

Working Timer — main view

Working Timer is the Sprout‑based successor to the archived Work‑Timer. It keeps the original count‑up workflow and Microsoft Store identity, and replaces the old UWP UI and custom style layer with a fully self‑drawn Fluent shell — every control, the timer type, the flyouts and the compact overlay are painted by Sprout on Direct2D / DirectComposition and shipped as a single NativeAOT binary.

This repository (Richasy/Rodel.Timer) is the codebase; Working Timer is the product name shown in the app and on the Store.


⬇️ Install

Working Timer is free on the Microsoft Store — the recommended way to install it and get automatic updates (x64 and Arm64, Windows 10 19041+):

Download Working Timer from the Microsoft Store

Store listing: https://apps.microsoft.com/detail/9N71W9G714RK


✨ Features

  • ⏱️ Count‑up timing — deterministic and monotonic, with no pause state; time only moves forward.
  • 🗂️ Folders & history — group sessions into folders and browse a per‑folder history, right from the title bar.
  • 🎯 Daily target — set a daily focus goal in minutes and watch Today's focus climb toward it.
  • 🎨 Themes & materials — System / Light / Dark, and five window canvases (Mica, Mica Alt, Acrylic, Acrylic Thin, Liquid Glass Wallpaper).
  • 🔤 Fonts — pick any installed font for the whole app.
  • 🌐 Live localization — English and Chinese (Simplified & Traditional), switched instantly with no restart.
  • 🪟 Compact overlay — collapse to a small, always‑on‑top timer while you work.
  • Accessible by design — stable UI Automation ids, accessible names and descriptions, keyboard access keys, and transactional screen‑reader announcements.
  • 🔒 Safe upgrade — a one‑time, fail‑safe import of your existing Work‑Timer folders, history and settings.

📸 Screenshots

Light theme
Light theme — the shell follows the system, light or dark, live.
Settings
Settings — theme, window material, font, daily target, language, and About.
Folders
Folders — choose where the current session belongs.
History
History — per‑folder sessions with duration and time.
Compact overlay
Compact overlay — a small, always‑on‑top timer.

🏗️ Built with Sprout

Working Timer is a showcase app for Sprout, an experimental self‑drawn, compile‑time‑reconciled, GPU‑rendered Windows UI framework. The code is split into UI‑independent layers:

src/
  Rodel.Timer/               Sprout app shell, Fluent UI, MSIX identity, Windows legacy‑data adapter
  Rodel.Timer.Core/          UI‑independent domain: timing, folders, history, persistence, migration
  Rodel.Timer.Presentation/  Reactive application state and UI‑independent presentation policy
tests/
  Rodel.Timer.Core.Tests/
  Rodel.Timer.Tests/
  • Rodel.Timer.Core owns the domain — monotonic timing, the folder/history model with explicit invariants, NativeAOT‑safe versioned JSON written with atomic replacement, and the legacy importer.
  • Rodel.Timer.Presentation holds reactive UI state, independent of any specific control.
  • Rodel.Timer is the Sprout shell — the responsive Fluent surface, the title‑bar Folders/History flyouts, the open‑canvas workspace, the compact overlay, and the Windows/MSIX glue.

🚀 Build & run

⚠️ Not yet buildable outside Richasy. Working Timer depends on Sprout, which is still in private development with no publicly released packages. NuGet.config resolves the Sprout* packages from a local pack feed (..\Sprout\artifacts\local-feed) that requires the not‑yet‑public Sprout repository, so dotnet restore will fail for external developers. Public build steps will follow once Sprout ships to nuget.org.

Just want to use the app? Install it free from the Microsoft Store — no build required.

For reference, once the Sprout packages are available the app builds with the .NET 10 SDK on Windows 10 (19041)+ (the Sprout versions are pinned in Directory.Packages.props):

dotnet build   Rodel.Timer.slnx
dotnet test    Rodel.Timer.slnx
dotnet publish src\Rodel.Timer\Rodel.Timer.csproj -c Release -r win-x64

dotnet publish emits the NativeAOT executable and a signed MSIX package under artifacts/bin/Rodel.Timer/Release/.../publish.


📄 License

Working Timer is open source under the MIT License.


🙏 Acknowledgements

  • Built on Sprout — the self‑drawn Windows UI framework.
  • Succeeds Work‑Timer — the original UWP application.

About

A Fluent Design work timer rebuilt with Sprout.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages