Trigger actions based on evdev events from input devices.
Project description
evdev-trigger
Triggers "Actions" on input from evdev- devices. Select which devices to listen to and which actions to trigger based on the input.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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for evdev_trigger-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 655189ae209b203c5f5cc9039bd971363069c47cc00270868ee9971c8fc067ea |
|
MD5 | f1590d6b816673239d9720a052b343c1 |
|
BLAKE2b-256 | 3cb0e29769a7192631003d2a101450f5f5f269f8e7bd0a81a6a8364a7559f174 |