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.
- Offline by default
- No analytics or telemetry
- No keyboard logging or invasive hooks
- Low-overhead background runtime
src/: Linux GTK applicationwindows/Vision20.Windows/: Windows desktop application (Avalonia)tests/: unit tests for the timer enginewebsite/: landing page
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-devBuild and test:
cmake -S . -B build
cmake --build build -j
ctest --test-dir build --output-on-failureRun:
./build/vision20Requirements:
- .NET SDK 8+ (
dotnet --list-sdks)
Build and run:
.\scripts\windows\build.ps1
dotnet run --project .\windows\Vision20.Windows\Vision20.Windows.csprojPublish single-file executable:
.\scripts\windows\publish.ps1 -Runtime win-x64 -SelfContained- 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
- No server calls are made by the app.
- Linux idle detection uses local desktop session APIs.
- Windows idle detection uses local Win32 APIs.
- Windows notes:
windows/README.md