Repository navigation
Releases: InputActions/discussions
Release list
v0.9.0 (repository split)
The repository has been split into five due to reasons mentioned in issue #425:
- ctl (control tool)
- core (contains code shared by all implementations)
- hyprland
- kwin
- standalone
The current repository now serves as a global issue tracker and a place for discussion. No further releases will be made here.
For the actual list of changes, see:
The standalone implementation has been omitted from v0.9.0 on purpose.
v0.8.4
Fixed bugs
- kwin: the plugin blocks direct scanout and overlays
- triggers/stroke: 180-degree turns may be discarded during path simplification (this is a temporary workaround until the algorithm is replaced, other similar issues may still occur), affected strokes will need to be recorded again
v0.8.3
Fixed bugs
- async actions executing after a trigger has ended cause other triggers to not work properly
- triggers with minimum thresholds do not override other triggers when it is reached and an action is executed
- kwin: performing a drag-and-drop in any program prevents mouse triggers from activating until that button is pressed and released
- touchpad: 2-finger click triggers do not work if performed immediately after scrolling without lifting fingers
v0.8.2
Fixed bugs
- actions: a delta of 0 is incorrectly interpreted as a direction change from negative to positive
- mouse: swipe direction detection is not determined accurately enough
- touchpad: after performing a press gesture, finger variables stop updating and 2-finger swipe gestures stop being activated until a tap is performed
- variables: the value of
keyboard_modifiersis not updated when the session is locked, causing some modifiers to remain even after being released
v0.8.1
Breaking changes
- kwin: dropped support for Plasma 6.1 and 6.2
New features
- config: any errors will now be shown in notifications for convenience, set
notifications.config_error: falsein root to disable them - kwin: added support for Plasma 6.5
v0.8.0
Breaking changes
- devices/touchpad/properties:
pressure_ranges.thumbis now of typeuint(previouslyrange(uint)), usepressure_ranges.palmto set the upper thumb pressure threshold - EventHandler: removed
blacklistandwhitelistproperties, use a gesture group with a$device_namevariable condition instead
New features
- actions:
limitproperty - limits the amount of times an action can execute during a gesture - actions/command:
waitproperty - delays further actions until the command finishes - actions/input:
delayproperty - can be used to slow down the action (see Known issues) - actions/input: keyboard text action - writes text into the focused text area (Wayland programs only)
It is also possible to use the output of a command:
input: - keyboard: [ text: 'aaaaaa' ]
input: # makes selected text uppercase - keyboard: - text: command: echo -n '$(wl-paste --primary)' | tr '[:lower:]' '[:upper:]'
- actions/sleep: can be used to delay further actions
- conditions: variables are allowed after the operator (e.g.
$window_id == $window_under_id) - devices/keyboard: shortcut gesture
- devices/touchpad: one-finger swipe and stroke gestures (the pointer's position is locked during a gesture), requires libevdev backend
- devices/touchpad: tap gesture - supports 1 to 5 fingers, requires libevdev backend
- devices/touchpad/properties:
pressure_ranges.fingerandpressure_ranges.palmproperties - variables:
finger_{1..5}_initial_position_percentageandthumb_initial_position_percentage, use these for swipe from edge gestures
Changes
- conditions: bool variable conditions no longer require operators (
$variableand!$variableare valid and equivalent to$variable == trueand$variable == falserespectively) - dbus: values of
pointvariables are now displayed in the output of thevariablesmethod,_xand_yvariables are hidden, but still exist - devices/touchpad: 1- and 2-finger press gestures are never blocked, as they are used to stop kinetic scrolling
Fixed bugs
- File descriptors are leaked to processes spawned using the command action - this only affected the inotify fd (used for watching the config file and directory) and touchpad fds (only if the udev rule was created, in which case any program could open the device anyways).
- devices/mouse: certain mice are incorrectly recognized as keyboards and ignored
- devices/touchpad: finger position variables can be incorrect or negative on some devices
- devices/touchpad:
finger_variables may be filled in the wrong order, and on devices with more than 5 slots, some may not be filled at all - hyprland: device removal is not detected properly
- hyprland: using any input device after a config reload crashes the compositor
Support
If you like InputActions, consider making a donation to support the development.
v0.7.0
Important
New dependencies: pkg-config, libevdev. Run the appropriate command for your distribution from the Dependencies section.
There is now an optional, extra setup step after installation that will enable some of the features mentioned here.
Deprecated things that were supposed to be removed in this version will instead be removed in v0.8.
Changes
- AUR package renamed to inputactions-kwin
- Buillding the KWin plugin requires adding
-DINPUTACTIONS_BUILD_KWIN=ONto cmake flags. - Configuration file path changed to
~/.config/inputactions/config.yaml, the old file will be automatically copied there once. On debug builds~/.config/inputactions/config-debug.yamlis checked first. - Root.touchpad can no longer be a list, EventHandler.blacklist and EventHandler.whitelist are deprecated - for device-specific gestures use the device_name variable in a condition (and optionally a gesture group)
- Gesture.fingers is no longer deprecated due to how often it's used and how verbose conditions are
Features
- Hyprland plugin
- libevdev input backend
- New variables:
- device_name
- finger_{1..5}_position_percentage (finger position on touchpad)
- finger_{1..5}_pressure
- last_trigger_id (allows for gesture chaining, e.g. hold then swipe, or preventing gestures from being performed twice in a row)
- plasma_overview_active
- thumb_position_percentage
- thumb_present
- Touchpad click gesture (hard press): available on touchpads that don't have separate physical buttons below and instead act as one button
- Mouse gestures with exact button press order are now possible by setting mouse_buttons_exact_order on the gesture
- Added EventHandler.devices, TouchpadEventHandler.click_timeout, Gesture.id, Gesture.set_last_trigger, Gesture.mouse_buttons_exact_order
- Added
variables(QString filter = "")andreloadConfig()dbus methods
Fixed bugs
- Configuration file watcher breaks when file is deleted and doesn't work with symlinks
- Actions with
interval: '-'orinterval: '+'can cause an infinite loop that freezes the compositor
v0.6.1
v0.6.0
Important
This release introduces minor breaking changes (highlighted in bold).
Features
- Automatic gesture conflict resolution
- Stroke gesture
- Mouse gestures (Plasma 6.3 required): press, wheel, stroke, swipe
- Improved condition system based on variables (support for legacy conditions will be removed in v0.7)
any:,all:,none:condition groups- Gesture end conditions
- Touchpad scroll timeout (controls when 2-finger swipes end) can be configured
one:action group - only executes a single action from the group, replaces Action.block_other- Gesture groups: apply a set of properties, including conditions, to many gestures
Changes
- Project renamed to Input Actions, will eventually support other environments than just Plasma
- Moved documentation to https://github.com/InputActions/docs - this allows me to change the documentation for a specific version and not introduce new stuff that doesn't exist in the latest stable version when a PR is merged
Fixed bugs
- Update actions intervals belonging to single-directional gestures of certain directions only work if negative.
Fixed bugs
- Non-zero interval actions of bidirectional gestures ignore the delta of the event where the direction changes. Due to the high polling rate, this wasn't noticeable at all.
Configuration
Changes
- Device - Renamed to EventHandler
- Gesture.type - New values (wheel, stroke), hold renamed to press but can still be used
New properties/types
- ConditionGroup
- EventHandler: blacklist, whitelist
- Gesture: clear_modifiers, end_conditions, mouse_buttons
- MouseEventHandler
- OneConditionGroup
- Root: mouse
- TouchpadEventHandler
- VariableCondition
Removed properties
- Action.block_other - Use the
one:action group instead - InputAction.keyboard - Use InputAction.input instead
Deprecated properties
These will continue to work until v0.7.
- Gesture.fingers - Use the fingers variable in a condition instead.
- Gesture.keyboard_modifiers - Use the keyboard_modifiers variable in a condition instead.