Skip to content
Aditya Krishnan edited this page Oct 25, 2026 · 3 revisions

About ScreenGuard

The problem

Linux desktops have plenty of tools for blocking things — Cold Turkey, LeechBlockNG, a pkill in a cron job. What they do not have is the thing most people actually want: the Android-style Digital Wellbeing panel that Android shipped in 2019. A single place that shows you where your day went, caps the apps that quietly eat it, and runs focus sessions with a timer and a distraction blocker.

ScreenGuard exists to close that gap.

What it aims for

1. Digital wellbeing, not just time limits. Knowing you spent four hours in a browser is useless on its own. The value is in the dashboard: totals, trends, a per-day breakdown, and a daily goal you can set — so you can see the shape of your day, not just its length.

2. Works on the desktop you actually have. Not "works on GNOME if you are lucky". ScreenGuard supports every X11 desktop out of the box, and GNOME Wayland natively through its own shell extension. KDE Plasma Wayland and Hyprland/Sway remain planned.

3. Private by architecture, not by promise. There is no server holding your usage data because there is no usage server. Usage data lives in a SQLite file in your home directory. The app talks to GitHub for update checks and a small public feedback-config file, and — only when anonymous diagnostics are enabled — sends crash traces plus one active-install ping per day to Sentry. The ping carries a random install ID, the app version, distribution/desktop environment, display server and build channel; it never includes screen-time data, app names, window titles or URLs. Diagnostics are opt-out in Settings → Diagnostics.

4. A tool you keep installed. Nothing here is punitive or preachy. The app limits, the focus sessions and the dashboard are tools; using them or not is up to you. The one design rule is that the app must not become another source of guilt.

What it deliberately is not

  • Not a parental control. It has no hidden mode, no remote admin, no way for anyone else to see your data. If you want to lock yourself out of the app, the honest way is a systemd timer or a container — not a feature we would ship.
  • Not a keylogger or a surveillance tool. It counts which application is in the foreground. It does not read window contents, does not log keystrokes, does not capture screenshots, and does not ship that data anywhere.
  • Not an anti-adblocker or a network blocker. It works at the window level, not the packet level.
  • Not a productivity suite. No to-do lists, no time tracking for employers, no team dashboards. One job, done properly.

The technical shape

ScreenGuard is three cooperating pieces, which is what makes it work on both Wayland and X11:

  • a Flutter GUI for the dashboard, limits and focus sessions,
  • a background daemon that samples the active window, records usage and enforces limits while the GUI is closed,
  • a platform bridge — a GNOME Shell extension on Wayland, the EWMH/xdotool protocol on X11.

The daemon is currently written in Dart. The v1.5 roadmap targets a C port that preserves the current behavior and database contract.

The Architecture page explains how they talk to each other.

Where it is going

The Roadmap tracks what is shipped, what is in progress and what is planned. The next major milestones are v1.2 — a major UI and experience refresh, intentionally feature-light — and v1.5 — porting the daemon from Dart to C, using the current implementation as the reference. Feature work such as browser-tab tracking, grouped app limits, native Wayland support for KDE Plasma and Hyprland/Sway, data export and weekly digests remains planned.

Values

  • Local first. No cloud, no accounts, no telemetry of usage.
  • Open by default. GPLv3, and the packaging is reproducible from the repository.
  • Honest about limits. If a feature does not work on your setup, the wiki and the issues say so rather than pretending.
  • Accessible. Keyboard reachable, works at high contrast, respects your theme, and ships real UI strings rather than developer shorthand.

Related: Features · Architecture · Roadmap · Feedback

Clone this wiki locally