# macrokeyd
macrokeyd is a Python daemon that allows assigning custom actions to a specific keyboard, such as commands, text, system shortcuts, or chained sequences. It is designed to run as a systemd service and configured through modular JSON files.
🚀 Quick Installation from PyPI
pip install macrokeyd
Requires Python >= 3.7 and Linux with
evdevsupport.
🧪 Testing Installation
macrokeyd --help
macrokeyd --version
You can start the daemon with:
macrokeyd --run
By default, it searches for
~/.local/share/macrokeyd/default.jsonand creates it if it doesn't exist.
⚙️ Installing as a systemd service
macrokeyd-install-service
Check the status:
systemctl status macrokeyd
Uninstall:
macrokeyd-uninstall-service
📌 Installation with System Python (Recommended for Gtk Integration)
If you're using Gtk integration (such as PyGObject), it's recommended to use the system Python to avoid compatibility issues:
sudo apt install python3 python3-pip python3-venv python3-gi python3-gi-cairo gir1.2-gtk-3.0 gir1.2-appindicator3-0.1
Also, install Tkinter for MouseInfo support, which requires system-level libraries:
sudo apt install python3-tk python3-dev
pyenv virtualenv --system-site-packages system macrokeyd-env
pyenv local macrokeyd-env
pip install macrokeyd
Verify the installation:
python -c "import gi; print(gi.__file__)"
The output should resemble:
/usr/lib/python3/dist-packages/gi/__init__.py
🎛️ Macro Configuration
The configuration file is located at (or created at):
~/.local/share/macrokeyd/default.json
Example content:
{
"meta": {
"target_device_name": "TEC-FX556K"
},
"macros": {
"KEY_Q": {"action": "command", "value": "gnome-terminal"},
"KEY_W": {"action": "text", "value": "Hello world"}
}
}
🧱 Local Development
git clone https://gitlab.com/your_user/macrokeyd.git
cd macrokeyd
make install
🛠 Useful Commands (make)
make build→ generates.whland.tar.gzpackagesmake install→ installs locally with--force-reinstallmake clean→ cleans up artifactsmake release LEVEL=patch→ bumps version and pushesmake release-changelog→ same asreleaseand updatesCHANGELOG.mdmake release-pypi→ publishes to PyPImake release-test→ publishes to TestPyPI
📦 Publishing to PyPI
Check RELEASE.md for the full versioning and release cycle details.
Metadata
Release files for macrokeyd 0.1.11
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| macrokeyd-0.1.11.tar.gz | 2.1 MB | Without provenance | Details for macrokeyd-0.1.11.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| macrokeyd-0.1.11-py3-none-any.whl | Python 3 | none | any | Details for macrokeyd-0.1.11-py3-none-any.whl |
Total release size: 4.2 MB
Release files / macrokeyd-0.1.11.tar.gz
| Download URL | macrokeyd-0.1.11.tar.gz |
|---|---|
| Size | 2.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
cc6134581a6a5714202c11901f4159abab3819bdf7f506fdad266f6d02e8f565
|
|
BLAKE2b-256 checksum How to use checksums |
f3c12b7d9c6e0665c6d1c3011be089ef366671c9bcd3d8c0518316467d1bb928
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.12
|
Release files / macrokeyd-0.1.11-py3-none-any.whl
| Download URL | macrokeyd-0.1.11-py3-none-any.whl |
|---|---|
| Size | 2.1 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a47ac603c8b6d61a7811bdd92c0bbb6b018e01ad7b3dedd60b4cb4899bd3c025
|
|
BLAKE2b-256 checksum How to use checksums |
43558aff5380dfbd04456b40b1999184d8444b53fa46cfee338577b5aad37e40
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.10.12
|
Security for macrokeyd 0.1.11
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.