A personal Windows tray-app toolkit: adaptive monitor brightness/contrast, USB-aware display input switching, Home Assistant MQTT bridge, and more.
- 🌅 Adaptive brightness & contrast anchored to real sunrise/sunset, with a live preview graph
- 🗺️ OpenStreetMap location picker — coordinates and IANA timezone resolved from a single map click
- 🔌 USB-aware display switching — flips monitor inputs over DDC/CI when a KVM device hops machines
- 🏠 Home Assistant MQTT publisher exposing host metrics + lock / sleep / shutdown commands
- ⬆️ Built-in auto-updater that picks up new releases from GitHub and re-installs silently
- 🪟 Native Windows tray with a unified tabbed configuration dialog and remembered window sizes
Grab the latest installer from the releases page and run it — it's a per-user Inno Setup .exe and does not need administrator rights. Once installed, the application keeps itself up-to-date through the built-in auto-updater.
The project pins Python 3.12 and uses a virtual environment at ./env/. From a fresh clone:
# install runtime, build, and test dependencies
./env/Scripts/python.exe -m pip install -e .[build,test]
# run the tray straight from source (no freeze)
./env/Scripts/python.exe -m swiss_windows_knife
# regenerate Qt resources after editing resources.qrc
python tools/build.py resources
# freeze the executable with cx_Freeze
python tools/build.py exe
# package the Inno Setup installer (Windows only)
python tools/build.py installerWire the same lint hook CI uses:
pip install pre-commit
pre-commit install # runs ruff on staged files before each commitReleases follow semantic versioning and are cut automatically by python-semantic-release from conventional commit messages on main. Each release publishes the Inno Setup installer as an asset and the changelog body is generated from the commit history.
Released under the MIT License.