Repository navigation
Installation
English · Português (Brasil)
Screen Diff Watcher runs on Windows (x64) and Linux Debian/Ubuntu (amd64, X11). There are two ways to install: via the binaries (installers) or via the source code.
| Platform | Format | Notes |
|---|---|---|
| Windows x64 |
screen-diff-watcher_<version>_windows_x64_setup.exe (Inno Setup) |
requires admin (per-machine); Tesseract downloaded automatically (optional) |
| Linux Debian/Ubuntu amd64 | screen-watch_<version>_amd64.deb |
requires X11; Wayland does not capture |
| macOS | — | no installer and not validated (the code has basic paths) |
The installers are published on GitHub Releases.
- Download and run
screen-diff-watcher_<version>_windows_x64_setup.exe. - The installer is per-machine (installs to
Program Files) and requires admin — because of the machine-wide Tesseract install. It creates a Start Menu shortcut and, optionally (unchecked), a Desktop shortcut and automatic start with Windows. -
SmartScreen: since the
.exeis not signed, Windows will warn — use "More info" → "Run anyway". The antivirus may do the same. Code signing is out of scope. -
Automatic Tesseract: if Tesseract is not installed, the installer downloads the
pinned UB-Mannheim release, verifies the SHA256, installs it silently and ensures the
por.traineddata(the package already shipseng). It needs network and admin; if the download/verification fails, it warns and continues — thelight/defaultmodes work andadvancedreports the absence with a clear message.-
Offline: install Tesseract manually
(https://github.com/UB-Mannheim/tesseract/wiki) with the
porandengtraineddata; the installer detects the binary and does not download anything.
-
Offline: install Tesseract manually
(https://github.com/UB-Mannheim/tesseract/wiki) with the
- Uninstalling removes only the app and preserves Tesseract and the user data.
sudo apt install ./screen-watch_<version>_amd64.deb-
Requires X11 (Wayland is not supported for capture).
-
The
.debdeclarestesseract-ocr+tesseract-ocr-porand the Qt6/X11 libs as dependencies;pulseaudio-utils/alsa-utilscome asRecommends(legacy fallback players). -
Installed commands:
screen-watch(CLI) andscreen-diff-watcher-gui(GUI, also in the menu shortcut). -
Autostart: the
.debdoes not configure it. To start with the session, create~/.config/autostart/screen-diff-watcher.desktop:[Desktop Entry] Type=Application Exec=screen-diff-watcher-gui X-GNOME-Autostart-enabled=true
-
Uninstalling preserves Tesseract and the app-data.
Requires Python 3.11+.
python -m venv .venv
.\.venv\Scripts\Activate.ps1 # Linux/macOS: source .venv/bin/activate
python -m pip install -e ".[dev]" # core + test tools (ruff/pytest)Optional extras:
| Extra | What for |
|---|---|
pip install -e ".[input]" |
pseudo-human actions and global hotkeys (pynput) |
pip install -e ".[sound]" |
sound via simpleaudio (no reliable wheel on Python 3.13; optional) |
pip install -e ".[ocr-preproc]" |
OCR preprocessing experiments (opencv-python) |
pip install -e ".[mqtt]" |
MQTT alert channel (paho-mqtt; not bundled in the installers) |
pip install -e ".[build]" |
build installers (pyinstaller) |
The ntfy and SMTP alert channels need no extra (the core httpx and the stdlib smtplib);
only MQTT requires the mqtt extra. Credentials for every channel (Telegram, ntfy, SMTP, MQTT)
come from environment variables, never from the YAML.
Then:
python -m screen_watch --help
python -m screen_watch init-config # creates config.yaml v2 in app-dataEverything lives in %APPDATA%\screen_watch on Windows (config.yaml, selections/, state.json,
logs/). To point to another directory, set SCREEN_WATCH_HOME. See the effective paths:
python -m screen_watch show-pathsMicrosoft Store Python (MSIX): Windows redirects %APPDATA% into the package, and the
file becomes invisible to Explorer/editors. In that case the app switches to the real path
(...\AppData\Local\Packages\<package>\LocalCache\Roaming\screen_watch).
screen-watch features # version/origin, app-data, number of selections, Tesseract, input, sound, tray, monitors
screen-watch features --json # JSON output (used in the CI smoke)It degrades without a display (does not break) and reports whether the binary is bundle or source. It is the
first command to diagnose an environment (e.g.: missing Tesseract, pynput unavailable).
-
Wayland: capture via
mssdoes not work; run on X11. The app warns and ends therun. - Tray on GNOME: may not appear without a tray extension; the window keeps working.
-
Sound on Linux: the CLI/
runuses the bundledminiaudio(WAV/MP3/OGG/FLAC); the GUI depends on the GStreamer plugins, and M4A/AAC in the CLI needs an external player (ffplay), otherwise it falls back tobeep. -
Architecture: only
amd64/x86_64. ARM out of scope.