Repository navigation
Roadmap
Aditya Krishnan edited this page Oct 25, 2026
·
2 revisions
What is shipped, what is being worked on, and what is planned. The GitHub releases page is the source of truth for versions.
Want to influence what happens next? Every planned item below is open for discussion in the feedback thread.
| Area | What is done |
|---|---|
| Tracking | Foreground-window sampling with app-name resolution, idle detection, usage history in SQLite (WAL) |
| Dashboard | Weekly and 30-day activity charts, app-share donut, active-versus-idle breakdown, per-day breakdown |
| History | Week-by-week navigation and a per-day app inspector |
| App limits | Per-app daily caps, 90% warning, 100% lockout screen, temporary extensions, editable limits |
| Focus Mode | Pomodoro timer (15/25/45/60 min + custom), distraction blocker, pause and resume that survives restarts, per-day focus statistics |
| Pomodoro | Configurable cycles (1–20) and break length (1–60 min), break phases with their own notifications, app blocking suspended during breaks |
| Goals | A configurable daily screen-time target with milestone and overtime alerts |
| Settings | A full settings UI — before v0.1.1-beta.3 there was none — with notification, sound, limit and Pomodoro controls |
| Wayland | Native GNOME Shell extension over D-Bus, with CloseActiveWindow() and CloseWindowByPid()
|
| X11 | EWMH tracking through xprop, enforcement through xdotool, idle through xprintidle
|
| Packaging | APT repository, Copr, signed Arch repository, .deb, .rpm, tarball installer, systemd user preset |
| Area | What is done |
|---|---|
| Watchdog | A native C supervisor that restarts a crashed daemon with exponential backoff, on systemd and non-systemd systems alike |
| Crash reporting | Opt-out Sentry reporting, a local crash log viewer, a Send test ping button, and a privacy statement of exactly what is and is not collected |
| Updates | An in-app update checker with stable and beta channels, one-click install, no curl dependency, an installer that runs in its own systemd service, and an automatic reopen of the new version after updating |
| Native helpers |
screenguard-notify (D-Bus, systemd-independent) and screenguard-killer (escalating close chain, Steam/Proton aware) |
| Steam and Proton | Real game names from library manifests, per-game icons, limits and focus rules applied to games, fullscreen games leaving fullscreen before minimisation |
| Data control | A Data tab with storage statistics, per-day and date-range deletion, and a full wipe behind a double confirmation — settings and limits always preserved |
| Enforcement safety | Strict auto-close is now opt-in; the default never closes an application behind your back, it warns and waits |
| UI | Settings reorganised into a sidebar with five sections, and a GNOME app-grid layout option for the focus app picker |
| Area | What is done |
|---|---|
| Delivery reliability | The daily active-install ping now retries and queues failed sends; development and CI installs are excluded |
| Clean shutdown | SIGTERM, SIGINT and SIGHUP are handled cleanly, so logging out no longer looks like a crash |
| Installer | Fixed the duplicate-daemon restart loop and hardened the update handoff |
| Focus | Fixed the cached distraction-list bug in the daemon |
| Privacy | Anonymous diagnostics are documented as opt-out in the README, Settings and wiki |
| Feedback channel | In-app feedback requests are version-gated and delivered from a public JSON document |
| Orphan cleanup | Sessions left by unclean stops are closed on the next start, so they no longer inflate the 30-day totals |
| Area | What is happening |
|---|---|
| X11 correctness | Continued community testing of window tracking and minimisation across desktops |
| Version | Focus |
|---|---|
| v1.2 | Major UI and experience refresh — clarity, navigation, accessibility, visual consistency and polish. Intentionally feature-light: fewer new features, more refinement of the experience. |
| v1.5 | Port the daemon from Dart to C, using the current Dart implementation as the behavioral reference. The goal is lower runtime overhead and fewer dependencies without changing tracking, limits or focus behavior. |
| Item | What it means |
|---|---|
| Browser-tab tracking | Track individual tabs (YouTube, Reddit, Docs) instead of grouping all browsing under one browser entry |
| Categorised app-group limits | Give several apps a shared budget — for example, all social media capped at one hour a day combined |
| KDE Plasma Wayland | Native support through the Plasma window-management protocols |
| Hyprland / Sway Wayland | Native support through wlr-foreign-toplevel-management
|
| Data export | Export your history to CSV or JSON for your own analysis |
| Weekly digest reports | Automated PDF or Markdown summaries of weekly productivity trends |
| Strict mode for limits | Hard lockouts that refuse extra time once a daily limit is reached, rather than offering a grace window |
| Flathub and Snap | Official packages outside the distribution repositories |
| AUR package | Once account registration on the AUR is available again |
| Idea | Notes |
|---|---|
| Translations | The UI strings are ready to be localised; no locale infrastructure yet |
| Idle-aware limits | Counting only active time towards a limit, instead of wall-clock time |
| Per-profile limits | Separate budgets for work and personal hours |
- Shipped means it is in a tagged release.
- In progress means it exists in the repository but is not in a release yet — so if you run a beta you may already have it.
- Planned means it is committed to being built, but not started.
- Exploring means it is an idea being discussed; nothing is promised.
Items move between sections as they land. If something on this page is wrong or out of date, please say so in the feedback thread — this page is maintained by hand, and corrections are welcome.
Related: Features · Feedback · Contributing
ScreenGuard — digital wellbeing for Linux. Source code · Issues · Discussions · Releases
Maintained by Aditya Krishnan · GPLv3