Skip to content

Repository files navigation

Swiss Windows Knife

Swiss Windows Knife

A personal Windows tray-app toolkit: adaptive monitor brightness/contrast, USB-aware display input switching, Home Assistant MQTT bridge, and more.

Releases  ·  Changelog  ·  Conventions

Build and test Latest release Python Ruff License: MIT


  • 🌅  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

Installation

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.

Build from source

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 installer

Wire the same lint hook CI uses:

pip install pre-commit
pre-commit install   # runs ruff on staged files before each commit

Releases

Releases 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.

License

Released under the MIT License.

About

A personal Windows tray-app toolkit: adaptive monitor brightness/contrast, USB-aware display input switching, Home Assistant MQTT bridge, and more.

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Used by

Contributors

Languages