Skip to content

Latest commit

 

History

History
469 lines (378 loc) · 9.1 KB

File metadata and controls

469 lines (378 loc) · 9.1 KB

Example triggers

:::{important} Read first before complaining that these do not work. :::

Mouse

Right + Draw circle clockwise - Close window
- type: stroke
  strokes: [ 'OAMAAUkEBRZZEgwkYCARMmA6GUBSViRPQGMrYyNkNLAOVT3DAzhH0AUdUOkYC1j2OQBkAA==' ]
  mouse_buttons: [ right ]

  actions:
    - plasma_shortcut: kwin,Window Close
Meta + Wheel - Volume control
- type: wheel
  direction: up_down

  conditions:
    - $keyboard_modifiers == meta

  actions:
    - on: update
      interval: '+'
      input:
        - keyboard: [ volumedown ]

    - on: update
      interval: '-'
      input:
        - keyboard: [ volumeup ]
Extra7/Extra8 - Volume control (repeats if held)
anchors:
  - &repeat_delay 250
  - &repeat_interval 50

mouse:
  gestures:
    - type: press
      mouse_buttons: [ extra8 ]
      instant: true

      actions:
        - on: begin
          input:
            - keyboard: [ volumedown ]

        - on: update
          threshold: *repeat_delay
          interval: *repeat_interval
          input:
            - keyboard: [ volumedown ]

    - type: press
      mouse_buttons: [ extra7 ]
      instant: true

      actions:
        - on: begin
          input:
            - keyboard: [ volumeup ]

        - on: update
          threshold: *repeat_delay
          interval: *repeat_interval
          input:
            - keyboard: [ volumeup ]
Meta + Left/Right - Go back/forward
- type: press
  mouse_buttons: [ left ]
  instant: true

  conditions:
    - $keyboard_modifiers == meta

  actions:
    - on: begin
      input:
        - mouse: [ back ]

- type: press
  mouse_buttons: [ right ]
  instant: true

  conditions:
    - $keyboard_modifiers == meta

  actions:
    - on: begin
      input:
        - mouse: [ forward ]
Meta + Left + Swipe up/down - Home/End
- type: swipe
  direction: up
  mouse_buttons: [ left ]

  conditions:
    - $keyboard_modifiers == meta

  actions:
    - on: begin
      input:
        - keyboard: [ leftctrl+home ]

- type: swipe
  direction: down
  mouse_buttons: [ left ]

  conditions:
    - $keyboard_modifiers == meta

  actions:
    - on: begin
      input:
        - keyboard: [ leftctrl+end ]
Left click top left corner - Open dolphin
- type: press
  mouse_buttons: [ left ]
  instant: true

  conditions:
    - $pointer_position_screen_percentage <= 0.01,0.01

  actions:
    - on: begin
      command: dolphin
Middle click top edge - Maximize window
- type: press
  mouse_buttons: [ middle ]
  instant: true

  conditions:
    - $pointer_position_screen_percentage_y <= 0.01

  actions:
    - on: begin
      plasma_shortcut: kwin,Window Maximize
Right + Swipe down - Minimize window under cursor
 - type: swipe
   direction: down
   mouse_buttons: [ right ]

   actions:
     - command: kdotool windowminimize $window_under_pointer_id

Touchpad

Swipe 3 - Window drag
- type: swipe
  fingers: 3
  direction: any
  resume_timeout: 500 # Optional: allow lifting fingers for 500 ms, perform any other action (for example tap) to cancel the trigger immediately
  accelerated: true # May not work, see the Touchpad page

  actions:
    - on: begin
      input:
        - keyboard: [ +leftmeta ]
        - mouse: [ +left ]

    - on: update
      input:
        - mouse: [ move_by_delta ] # add a multiplier if necessary: "move_by_delta 1.5"

    - on: end_cancel
      input:
        - keyboard: [ -leftmeta ]
        - mouse: [ -left ]
Swipe 3 left/right - Go back/forward
- type: swipe
  fingers: 3
  direction: left

  actions:
    - on: begin
      input:
        - mouse: [ back ]

- type: swipe
  fingers: 3
  direction: right

  actions:
    - on: begin
      input:
        - mouse: [ forward ]
Rotate 2 - Volume control
- type: rotate
  fingers: 2
  direction: any

  actions:
    - on: update
      interval: -10
      input:
        - keyboard: [ volumedown ]

    - on: update
      interval: 10
      input:
        - keyboard: [ volumeup ]
Swipe 4 left/right - Switch window

Swipe slow - Switch window
Swipe fast - Open alt+tab switcher

- type: swipe
  fingers: 4
  direction: left_right
  speed: fast

  actions:
    - on: begin
      input:
        - keyboard: [ +leftalt, tab ]

    - on: update
      interval: -75
      input:
        - keyboard: [ leftshift+tab ]

    - on: update
      interval: 75
      input:
        - keyboard: [ tab ]

    - on: end_cancel
      input:
        - keyboard: [ -leftalt ]

# Quick window switching (left)
- type: swipe
  fingers: 4
  direction: left
  speed: slow

  actions:
    - on: begin
      input:
        - keyboard: [ leftalt+leftshift+tab ]

# Quick window switching (right)
- type: swipe
  fingers: 4
  direction: right
  speed: slow

  actions:
    - on: begin
      input:
        - keyboard: [ leftalt+tab ]
Swipe 4 down - Exit fullscreen/Unmaximize/Minimize
- type: swipe
  fingers: 4
  direction: down

  actions:
    - on: begin
      one:
        - plasma_shortcut: kwin,Window Fullscreen
          conditions:
            - $window_fullscreen == true

        - plasma_shortcut: kwin,Window Maximize
          conditions:
            - $window_maximized == true

        - plasma_shortcut: kwin,Window Minimize
Swipe 1 - Move the pointer automatically if the finger is at an edge
- type: swipe
  fingers: 1
  direction: any
  block_events: false

  conditions: $finger_1_initial_position_percentage between 0.2,0.2;0.8,0.8 # prevent accidental activations

  actions:
    - on: tick
      conditions: $finger_1_position_percentage_x <= 0.05

      input:
        - mouse: [ move_by -1 0 ]

    - on: tick
      conditions: $finger_1_position_percentage_x >= 0.95

      input:
        - mouse: [ move_by 1 0 ]

    - on: tick
      conditions: $finger_1_position_percentage_y <= 0.05

      input:
        - mouse: [ move_by 0 -1 ]

    - on: tick
      conditions: $finger_1_position_percentage_y >= 0.95

      input:
        - mouse: [ move_by 0 1 ]
Swipe 2 in circular motion - Circular scrolling

Place two fingers, with at least one's initial position being the top or bottom edge, then start circling around any point.

- type: circle
  fingers: 2
  direction: any

  conditions:
    any:
      - $finger_1_initial_position_percentage_y <= 0.05
      - $finger_2_initial_position_percentage_y <= 0.05
      - $finger_1_initial_position_percentage_y >= 0.95
      - $finger_2_initial_position_percentage_y >= 0.95

  actions:
    - on: update
      interval: -0.5
      input:
        - mouse: [ wheel 0 -1 ]

    - on: update
      interval: 0.5
      input:
        - mouse: [ wheel 0 1 ]

From this point onwards triggers will only have placeholder actions.

Tip tap Place one finger in the middle then another one on the left/right. The trigger will not activate if the second finger is removed too quickly.
- type: hold
  fingers: 2

  conditions:
    - $finger_1_position_percentage_x between 0.4;0.6
    - $finger_2_position_percentage_x < 0.5

  actions:
    - on: begin
      input:
        - keyboard: [ a ]

- type: hold
  fingers: 2

  conditions:
    - $finger_1_position_percentage_x between 0.4;0.6
    - $finger_2_position_percentage_x > 0.5

  actions:
    - on: begin
      input:
        - keyboard: [ b ]
Swipe up from bottom edge
- type: swipe
  fingers: 3
  direction: up

  conditions:
    - $finger_1_initial_position_percentage_y >= 0.8

  actions:
    - on: begin
      input:
        - keyboard: [ a ]
Swipe 3 right then up (no lifting fingers)
- type: swipe
  fingers: 3
  direction: right
  id: swipe_3_right

- type: swipe
  fingers: 3
  direction: up

  conditions:
    - $last_trigger_id == swipe_3_right

  actions:
    - on: begin
      input:
        - keyboard: [ a ]