# bulletmark/libinput-gestures

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/bulletmark-libinput-gestures).**

4,130 stars · 242 forks · Python

## Links

- GitHub: https://github.com/bulletmark/libinput-gestures
- awesome-repositories: https://awesome-repositories.com/repository/bulletmark-libinput-gestures.md

## Topics

`gestures` `libinput` `touchpad`

## Description

libinput-gestures is a Linux input event daemon and touchpad gesture mapper that translates libinput events into shell commands or keyboard shortcuts. It functions as a background process that monitors raw input signals to automate workflows and execute system actions based on a user-defined configuration file.

The tool allows for the mapping of multi-finger swipes and hold gestures to specific terminal commands or desktop workspace navigation. It differentiates between actions by filtering for finger counts, swipe directions, and the duration of hold gestures.

The system integrates with systemd for service lifecycle management, enabling the daemon to start automatically within graphical sessions. It handles the execution of custom scripts and system commands by spawning child processes in response to detected input patterns.

## Tags

### User Interface & Experience

- [Touchpad Gesture Mappings](https://awesome-repositories.com/f/user-interface-experience/touch-gesture-handlers/touch-event-processors/coordinate-to-translation-mapping/input-to-action-mappings/gesture-to-action-mappings/touchpad-gesture-mappings.md) — Translates multi-finger touchpad swipes and pinches into system commands or keyboard shortcuts.
- [Touchpad Gesture Mapping](https://awesome-repositories.com/f/user-interface-experience/touchpad-gesture-mapping.md) — Translates specific touchpad movements into keyboard shortcuts or system commands via the input driver. ([source](https://github.com/bulletmark/libinput-gestures/blob/master/libinput-gestures.desktop))
- [Input Event Polling](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/interaction-and-event-handling/event-handling-architectures/event-handling-systems/event-queue-polling/input-event-polling.md) — Monitors raw touchpad events via libinput to translate hardware signals into recognized gestures.
- [Gesture-to-Action Controllers](https://awesome-repositories.com/f/user-interface-experience/mouse-gesture-mapping/gesture-to-action-controllers.md) — Maps peripheral touchpad gestures to operating system commands via a configuration file. ([source](https://github.com/bulletmark/libinput-gestures#readme))
- [Gesture-Based Action Triggers](https://awesome-repositories.com/f/user-interface-experience/gesture-based-ui-components/gesture-based-action-triggers.md) — Triggers specific system actions in response to hold gestures on the touchpad. ([source](https://github.com/bulletmark/libinput-gestures/blob/master/README.md))
- [Directional Gesture Mapping](https://awesome-repositories.com/f/user-interface-experience/touch-gesture-handlers/directional-gesture-mapping.md) — Assigns actions to cardinal directions or diagonal swipes to expand available input triggers. ([source](https://github.com/bulletmark/libinput-gestures/blob/master/README.md))
- [Gesture-to-Action Mappings](https://awesome-repositories.com/f/user-interface-experience/touch-gesture-handlers/touch-event-processors/coordinate-to-translation-mapping/input-to-action-mappings/gesture-to-action-mappings.md) — Maps specific finger counts to actions to allow multiple command mappings per motion. ([source](https://github.com/bulletmark/libinput-gestures/blob/master/libinput-gestures.conf))
- [Finger Count Filtering](https://awesome-repositories.com/f/user-interface-experience/touch-gesture-handlers/touch-event-processors/coordinate-to-translation-mapping/input-to-action-mappings/gesture-to-action-mappings/finger-count-filtering.md) — Specifies the exact number of fingers required to trigger specific gestures. ([source](https://github.com/bulletmark/libinput-gestures#readme))
- [Gesture Trigger Configuration](https://awesome-repositories.com/f/user-interface-experience/touch-gesture-handlers/touch-event-processors/coordinate-to-translation-mapping/input-to-action-mappings/gesture-to-action-mappings/gesture-trigger-configuration.md) — Allows definition of finger counts and duration delays to distinguish between different actions. ([source](https://github.com/bulletmark/libinput-gestures/))
- [Touch and Hold Delays](https://awesome-repositories.com/f/user-interface-experience/touch-layout-interactions/touch-and-hold-delays.md) — Assigns different commands to hold gestures based on the duration fingers remain static. ([source](https://github.com/bulletmark/libinput-gestures#readme))

### Development Tools & Productivity

- [Input Customization](https://awesome-repositories.com/f/development-tools-productivity/input-pointer-automation/input-customization.md) — Provides a way to redefine standard touchpad inputs to trigger custom shell commands and workflows.
- [Input Event Translation](https://awesome-repositories.com/f/development-tools-productivity/keyboard-macro-engines/gesture-triggered-macros/input-event-translation.md) — Translates libinput touchpad events into shell commands or keyboard shortcuts based on a configuration file.
- [Shell Command Execution](https://awesome-repositories.com/f/development-tools-productivity/shell-command-execution.md) — Provides the capability to trigger and control operating system shell commands via input gestures.
- [Application Lifecycle Managers](https://awesome-repositories.com/f/development-tools-productivity/application-identifiers/application-lifecycle-managers.md) — Provides commands to start, stop, and restart the background daemon process. ([source](https://github.com/bulletmark/libinput-gestures/))
- [Touch-Hold Duration Triggers](https://awesome-repositories.com/f/development-tools-productivity/input-binding-libraries/multi-key-bindings/hold-duration-triggers/touch-hold-duration-triggers.md) — Differentiates between taps and hold gestures by tracking the duration fingers remain static.

### Operating Systems & Systems Programming

- [Background Input Daemons](https://awesome-repositories.com/f/operating-systems-systems-programming/background-input-daemons.md) — Launches as a background system process that starts automatically upon entering a graphical session. ([source](https://github.com/bulletmark/libinput-gestures/blob/master/libinput-gestures.service))
- [Linux](https://awesome-repositories.com/f/operating-systems-systems-programming/input-remappers/linux.md) — Uses Linux-specific input interfaces to intercept touchpad events and redirect them to system actions.
- [Input Event Interceptors](https://awesome-repositories.com/f/operating-systems-systems-programming/hardware-interfacing-drivers/input-event-interception/input-event-interceptors.md) — Functions as a system-level hook that captures hardware input signals to trigger automated scripts.
- [Input-Triggered Command Executors](https://awesome-repositories.com/f/operating-systems-systems-programming/input-triggered-command-executors.md) — Maps multi-finger swipes and hold gestures directly to the execution of custom terminal commands.

### Programming Languages & Runtimes

- [Gesture-to-Command Mappings](https://awesome-repositories.com/f/programming-languages-runtimes/input-key-mappings/configurable-key-to-command-mappings/gesture-to-command-mappings.md) — Uses a plain text configuration file to match detected gestures to specific system commands.

### Software Engineering & Architecture

- [Child Process Execution](https://awesome-repositories.com/f/software-engineering-architecture/integration-extensibility/workflow-automation-integrations/external-application-integrations/child-process-execution.md) — Spawns external shell processes to execute terminal commands in response to touchpad gestures.
- [Workspace Navigation](https://awesome-repositories.com/f/software-engineering-architecture/event-driven-architectures/workspace-navigation.md) — Enables reactive switching between virtual desktops and workspaces triggered by specific touchpad gestures.

### System Administration & Monitoring

- [Background Service Daemonization](https://awesome-repositories.com/f/system-administration-monitoring/background-service-daemonization.md) — Runs as a persistent background service to continuously monitor input events without a terminal.

### DevOps & Infrastructure

- [Systemd Services](https://awesome-repositories.com/f/devops-infrastructure/systemd-services.md) — Integrates with systemd units to manage the service lifecycle and ensure automatic startup.
- [Workspace Navigation](https://awesome-repositories.com/f/devops-infrastructure/workspace-managers/workspace-navigation.md) — Executes workspace navigation commands to switch between virtual desktops using gestures. ([source](https://github.com/bulletmark/libinput-gestures/))
