Skip to content

Releases: InputActions/discussions

v0.9.0 (repository split)

Choose a tag to compare

@taj-ny taj-ny released this 09 Mar 15:47
Immutable release. Only release title and notes can be modified.
db60a1b

The repository has been split into five due to reasons mentioned in issue #425:

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

Choose a tag to compare

@taj-ny taj-ny released this 06 Jan 15:09
Immutable release. Only release title and notes can be modified.

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

Choose a tag to compare

@taj-ny taj-ny released this 17 Oct 09:49
Immutable release. Only release title and notes can be modified.

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

Choose a tag to compare

@taj-ny taj-ny released this 24 Sep 15:49
Immutable release. Only release title and notes can be modified.

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_modifiers is not updated when the session is locked, causing some modifiers to remain even after being released

v0.8.1

Choose a tag to compare

@taj-ny taj-ny released this 19 Sep 09:30
Immutable release. Only release title and notes can be modified.
27bf33f

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: false in root to disable them
  • kwin: added support for Plasma 6.5

v0.8.0

Choose a tag to compare

@taj-ny taj-ny released this 07 Sep 07:25
f3efe9f

Breaking changes

  • devices/touchpad/properties: pressure_ranges.thumb is now of type uint (previously range(uint)), use pressure_ranges.palm to set the upper thumb pressure threshold
  • EventHandler: removed blacklist and whitelist properties, use a gesture group with a $device_name variable condition instead

New features

  • actions: limit property - limits the amount of times an action can execute during a gesture
  • actions/command: wait property - delays further actions until the command finishes
  • actions/input: delay property - 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)
    input:
      - keyboard: [ text: 'aaaaaa' ]
    It is also possible to use the output of a command:
    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.finger and pressure_ranges.palm properties
  • variables: finger_{1..5}_initial_position_percentage and thumb_initial_position_percentage, use these for swipe from edge gestures

Changes

  • conditions: bool variable conditions no longer require operators ($variable and !$variable are valid and equivalent to $variable == true and $variable == false respectively)
  • dbus: values of point variables are now displayed in the output of the variables method, _x and _y variables 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

Choose a tag to compare

@taj-ny taj-ny released this 29 Jun 17:16
d3a1938

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=ON to 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.yaml is 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 = "") and reloadConfig() dbus methods

Fixed bugs

  • Configuration file watcher breaks when file is deleted and doesn't work with symlinks
  • Actions with interval: '-' or interval: '+' can cause an infinite loop that freezes the compositor

v0.6.1

Choose a tag to compare

@taj-ny taj-ny released this 02 Jun 17:25
e6f6c24

Fixed bugs

  • 2-finger touchpad swipe gestures break kinetic scrolling

v0.6.0

Choose a tag to compare

@taj-ny taj-ny released this 18 May 14:09
9b1cbd3

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.

v0.5.1

Choose a tag to compare

@taj-ny taj-ny released this 28 Mar 20:57
548998b

Fixed bugs

  • Keyboard modifiers are sometimes not detected properly under unknown circumstances
  • Modifier-only global shortcuts can be triggered when modifiers are released by the plugin after a gesture is started