Skip to content

Repository files navigation

Vision20

Vision20 is a local-first desktop app for the 20-20-20 rule: every 20 minutes of active work, look 20 feet away for 20 seconds.

Principles

  • Offline by default
  • No analytics or telemetry
  • No keyboard logging or invasive hooks
  • Low-overhead background runtime

Repository layout

  • src/: Linux GTK application
  • windows/Vision20.Windows/: Windows desktop application (Avalonia)
  • tests/: unit tests for the timer engine
  • website/: landing page

Build from source

Linux

Requirements:

  • cmake (3.20+)
  • pkg-config
  • GTK3 development packages
  • GLib/GIO development packages
  • X11 development packages
  • C compiler toolchain

Example setup on Debian or Ubuntu:

sudo apt update
sudo apt install -y build-essential cmake pkg-config libgtk-3-dev libglib2.0-dev libx11-dev

Build and test:

cmake -S . -B build
cmake --build build -j
ctest --test-dir build --output-on-failure

Run:

./build/vision20

Windows

Requirements:

  • .NET SDK 8+ (dotnet --list-sdks)

Build and run:

.\scripts\windows\build.ps1
dotnet run --project .\windows\Vision20.Windows\Vision20.Windows.csproj

Publish single-file executable:

.\scripts\windows\publish.ps1 -Runtime win-x64 -SelfContained

Future plans

  • Improve cross-platform visual consistency and accessibility
  • Expand Linux packaging targets and desktop integration
  • Improve reliability tests for timer, tray, and startup flows
  • Add contributor-focused diagnostics for easier issue reproduction
  • Continue performance and memory usage optimizations

Runtime behavior

  • No server calls are made by the app.
  • Linux idle detection uses local desktop session APIs.
  • Windows idle detection uses local Win32 APIs.

Additional docs

  • Windows notes: windows/README.md

Releases

Packages

Contributors

Languages