Skip to main content

evdev-trigger

Triggers "Actions" on input from evdev- devices. Select which devices to listen to and which actions to trigger based on the input.

PyPI - Version PyPI - Python Version

Demo gif

Table of Contents

Installation

Recommended installation is via pip in a virtual environment:

# Create a virtual environment
python3 -m venv venv

# Activate the virtual environment
source venv/bin/activate

# Install evdev-trigger
pip install evdev-trigger

Usage

$ evdev-trigger --help

 Usage: evdev-trigger [OPTIONS]

 Main function

╭─ Options ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ --file                                        TEXT  Storage file to use for storing reactions [default: storage.json]                                              │
│ --reset-storage         --no-reset-storage          Remove all devices and actions from storage (will not remove actions folder) [default: no-reset-storage]       │
│ --actions                                     TEXT  Folder to load actions from [default: None]                                                                    │
│ --install-completion                                Install completion for the current shell.                                                                      │
│ --show-completion                                   Show completion for the current shell, to copy it or customize the installation.                               │
│ --help                                              Show this message and exit.                                                                                    │
╰────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯

If you don't provide a storage file using --file, the default storage.json will be used in the current working directory. If --actions is not provided, the default actions folder will be copied to the current working directory, if it doesn't already exist.

Create an action

Examples of a standard action file and a complex action file can be found in the default_actions folder. A action is either a file that contains a class called Action which should use the base class ActionBase or a folder that contains a __init__.py file that contains the same class(es).

The evdev-trigger will call Action.execute with the input_device (Device class from evdev_trigger.models.devices) and the event (InputEvent from evdev.events).

Example of a simple action file:

from evdev_trigger.models import BaseAction


class Action(BaseAction):
    action_name: str = "EXAMPLE_DEBUG_ACTIONS"
    action_description: str = "Prints the device name, event code and value"

    def execute(self, input_device, event):
        """Execute the action"""
        print(f"[EVENT] {input_device.input_device.name}: {event.code} - {event.value}")

License

evdev-trigger is distributed under the terms of the MIT license.

Metadata

Release files for evdev-trigger 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for evdev-trigger 0.0.2
File Size Uploaded
evdev_trigger-0.0.2.tar.gz 10.3 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for evdev-trigger 0.0.2
File Interpreter ABI Platform
evdev_trigger-0.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 10.3 MB

Release files / evdev_trigger-0.0.2.tar.gz

Download URL evdev_trigger-0.0.2.tar.gz
Size 10.3 MB
Tags Source
SHA-256 checksum
How to use checksums
557a8b9402da3d1d05e5501a43378f182d3f6006e32b40de1301b107da3abfc3
BLAKE2b-256 checksum
How to use checksums
fa98d17439d213c4f37b580368b09156524681446fa36c7464a18f738a342a86
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-httpx/0.27.0

Release files / evdev_trigger-0.0.2-py3-none-any.whl

Download URL evdev_trigger-0.0.2-py3-none-any.whl
Size 12.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
655189ae209b203c5f5cc9039bd971363069c47cc00270868ee9971c8fc067ea
BLAKE2b-256 checksum
How to use checksums
3cb0e29769a7192631003d2a101450f5f5f269f8e7bd0a81a6a8364a7559f174
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-httpx/0.27.0

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page