Skip to main content

Macro daemon for dedicated keyboards

Project description

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 evdev support.


🧪 Testing Installation

macrokeyd --help
macrokeyd --version

You can start the daemon with:

macrokeyd --run

By default, it searches for ~/.local/share/macrokeyd/default.json and 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

🎛️ 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 .whl and .tar.gz packages
  • make install → installs locally with --force-reinstall
  • make clean → cleans up artifacts
  • make release LEVEL=patch → bumps version and pushes
  • make release-changelog → same as release and updates CHANGELOG.md
  • make release-pypi → publishes to PyPI
  • make release-test → publishes to TestPyPI

📦 Publishing to PyPI

Check RELEASE.md for the full versioning and release cycle details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

macrokeyd-0.1.7.tar.gz (19.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

macrokeyd-0.1.7-py3-none-any.whl (22.2 kB view details)

Uploaded Python 3

File details

Details for the file macrokeyd-0.1.7.tar.gz.

File metadata

  • Download URL: macrokeyd-0.1.7.tar.gz
  • Upload date:
  • Size: 19.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for macrokeyd-0.1.7.tar.gz
Algorithm Hash digest
SHA256 3f168f5dea93fcaa710e491da9ea6d7a02f3333eace6ce809f03d15a49bcbf8c
MD5 eac42a7e79705322c5190313c961f02b
BLAKE2b-256 17839b088579d815632229d4a7ce38727733b2edd1aa19040aa3ddc9566b283f

See more details on using hashes here.

File details

Details for the file macrokeyd-0.1.7-py3-none-any.whl.

File metadata

  • Download URL: macrokeyd-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 22.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.10

File hashes

Hashes for macrokeyd-0.1.7-py3-none-any.whl
Algorithm Hash digest
SHA256 f358153dfea9d7c9f36b2d6f59a9e973ffc506f4f5f90bf93f3b38cb16bd0c4e
MD5 faa10d96f7dbc7e4a0dc339441e062df
BLAKE2b-256 20e71a30c2a4d78965e9c07bba7e810973177c2184276bdf97f079225839d9b6

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page