Contributing¶
Contributions welcome. The source code lives on GitHub — fork it, clone it, and send a pull request. Please open an issue first to discuss larger changes, or start a thread in GitHub Discussions.
Areas that need work:
- More application integrations
Planned Enhancements¶
- Window controls (maximize, minimize)
- Dictation focus detection fix
- Further GNOME integration for desktop control
- Verbal help per section (say "help browser" for spoken commands)
- Auto-discover installed apps for launcher
- Clipboard commands (copy, paste)
Development¶
This project sports a Justfile to simplify all local development activities, and for running the same tasks in the CI pipeline.
The setup uses uv under the hood, which transparently manages virtual environments and package installation. uv also allows you to install several Python versions on your computer in parallel. We use this to test against all supported Python versions.
Prerequisites¶
First install the system build dependencies (PortAudio, GCC, Python 3.12, …) as described under Install from source in the Installation guide — without them the build and run steps below will fail.
Then install uv and just, e.g.
NixOS¶
Enter a development shell with all dependencies installed, or run the application directly:
To run directly off GitHub, with no clone required:
Packaging & Version Numbers¶
The packaging configuration is in pyproject.toml, supported by
MANIFEST.in. Version numbers are generated automatically by
setuptools-scm based on the
latest Git tag and the distance from that tag in number of commits.
To publish a new release, push a new Git tag (e.g. 2.1.0) to GitHub.