Mokka-migration - gestures not working correctly

Issue Description

After following the excelent guide from @FGD (one big thanks again!)
I notice that my touchpad gestures are not working as intended.
Screenshot of my libinput-gestures-qt:

When doing 3 fingers right and 3 fingers left, it switches desktops like I would use 4 fingers.

garuda-inxi

System:
Kernel: 6.14.3-zen1-1-zen arch: x86_64 bits: 64 compiler: gcc v: 14.2.1
clocksource: tsc avail: acpi_pm
parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
root=UUID=4f3937b5-6c07-4580-8883-8cef1f42d4f5 rw rootflags=subvol=@
vt.default_red=30,243,166,249,137,245,148,186,88,243,166,249,137,245,148,166
vt.default_grn=30,139,227,226,180,194,226,194,91,139,227,226,180,194,226,173
vt.default_blu=46,168,161,175,250,231,213,222,112,168,161,175,250,231,213,200
cryptdevice=UUID=3d769afd-2828-481c-8e36-8aba99397d5a:luks-3d769afd-2828-481c-8e36-8aba99397d5a
root=/dev/mapper/luks-3d769afd-2828-481c-8e36-8aba99397d5a
rd.udev.log_priority=3 vt.global_cursor_default=0
resume=UUID=4f3937b5-6c07-4580-8883-8cef1f42d4f5 resume_offset=57068631
loglevel=3
Desktop: KDE Plasma v: 6.3.4 tk: Qt v: N/A info: frameworks v: 6.13.0
wm: kwin_wayland tools: avail: i3lock vt: 1 dm: SDDM Distro: Garuda
base: Arch Linux
Machine:
Type: Laptop System: Framework product: Laptop v: AB
serial: <superuser required>
Mobo: Framework model: FRANBMCP0B v: AB serial: <superuser required>
part-nu: FRANBMCP0B uuid: <superuser required> UEFI: INSYDE v: 03.07
date: 12/14/2021
Battery:
ID-1: BAT1 charge: 48.0 Wh (100.0%) condition: 48.0/55.0 Wh (87.3%)
volts: 17.3 min: 15.4 model: NVT Framewo type: Li-ion serial: <filter>
status: not charging
CPU:
Info: model: 11th Gen Intel Core i7-1165G7 bits: 64 type: MT MCP
arch: Tiger Lake gen: core 11 level: v4 note: check built: 2020
process: Intel 10nm family: 6 model-id: 0x8C (140) stepping: 1
microcode: 0xB8
Topology: cpus: 1x dies: 1 clusters: 4 cores: 4 threads: 8 tpc: 2
smt: enabled cache: L1: 320 KiB desc: d-4x48 KiB; i-4x32 KiB L2: 5 MiB
desc: 4x1.2 MiB L3: 12 MiB desc: 1x12 MiB
Speed (MHz): avg: 3831 min/max: 400/4700 scaling: driver: intel_pstate
governor: powersave cores: 1: 3831 2: 3831 3: 3831 4: 3831 5: 3831 6: 3831
7: 3831 8: 3831 bogomips: 44851
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Vulnerabilities: <filter>
Graphics:
Device-1: Intel TigerLake-LP GT2 [Iris Xe Graphics] vendor: Framework
driver: i915 v: kernel alternate: xe arch: Xe process: Intel 10nm
built: 2020-21 ports: active: eDP-1 empty: DP-1, DP-2, DP-3, DP-4
bus-ID: 00:02.0 chip-ID: 8086:9a49 class-ID: 0300
Device-2: Realtek Laptop Camera driver: uvcvideo type: USB rev: 2.0
speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 3-7:2 chip-ID: 0bda:5634
class-ID: 0e02 serial: <filter>
Display: wayland server: X.org v: 1.21.1.16 with: Xwayland v: 24.1.6
compositor: kwin_wayland driver: X: loaded: modesetting
alternate: fbdev,intel,vesa dri: iris gpu: i915 display-ID: 0
Monitor-1: eDP-1 model: BOE Display 0x095f built: 2019 res:
mode: 2256x1504 hz: 60 scale: 135% (1.35) to: 1671x1114 dpi: 201 gamma: 1.2
size: 285x190mm (11.22x7.48") diag: 343mm (13.5") ratio: 3:2
modes: 2256x1504
API: EGL v: 1.5 hw: drv: intel iris platforms: device: 0 drv: iris
device: 1 drv: swrast gbm: drv: iris surfaceless: drv: iris wayland:
drv: iris x11: drv: iris
API: OpenGL v: 4.6 compat-v: 4.5 vendor: intel mesa v: 25.0.4-arch1.1
glx-v: 1.4 direct-render: yes renderer: Mesa Intel Iris Xe Graphics (TGL
GT2) device-ID: 8086:9a49 memory: 15.2 GiB unified: yes display-ID: :1.0
API: Vulkan v: 1.4.309 layers: 9 device: 0 type: integrated-gpu name: Intel
Iris Xe Graphics (TGL GT2) driver: mesa intel v: 25.0.4-arch1.1
device-ID: 8086:9a49 surfaces: xcb,xlib,wayland device: 1 type: cpu
name: llvmpipe (LLVM 19.1.7 256 bits) driver: mesa llvmpipe
v: 25.0.4-arch1.1 (LLVM 19.1.7) device-ID: 10005:0000
surfaces: xcb,xlib,wayland
Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo
de: kscreen-console,kscreen-doctor wl: wayland-info
x11: xdpyinfo, xprop, xrandr
Audio:
Device-1: Intel Tiger Lake-LP Smart Sound Audio vendor: Framework
driver: snd_hda_intel v: kernel alternate: snd_soc_avs,snd_sof_pci_intel_tgl
bus-ID: 00:1f.3 chip-ID: 8086:a0c8 class-ID: 0403
API: ALSA v: k6.14.3-zen1-1-zen status: kernel-api tools: N/A
Server-1: PipeWire v: 1.4.2 status: active with: 1: pipewire-pulse
status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
4: pw-jack type: plugin tools: pactl,pw-cat,pw-cli,wpctl
Network:
Device-1: Intel Wi-Fi 6E AX210/AX1675 2x2 [Typhoon Peak] driver: iwlwifi
v: kernel pcie: gen: 2 speed: 5 GT/s lanes: 1 bus-ID: aa:00.0
chip-ID: 8086:2725 class-ID: 0280
IF: wlp170s0 state: up mac: <filter>
IF-ID-1: br-64316bb60675 state: down mac: <filter>
IF-ID-2: br-8f600333d6f8 state: down mac: <filter>
IF-ID-3: docker0 state: down mac: <filter>
IF-ID-4: virbr0 state: down mac: <filter>
IF-ID-5: virbr1 state: down mac: <filter>
IF-ID-6: virbr2 state: down mac: <filter>
Info: services: NetworkManager, smbd, sshd, systemd-timesyncd,
wpa_supplicant
Bluetooth:
Device-1: Intel AX210 Bluetooth driver: btusb v: 0.8 type: USB rev: 2.0
speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 3-10:4 chip-ID: 8087:0032
class-ID: e001
Report: btmgmt ID: hci0 rfk-id: 0 state: down bt-service: enabled,running
rfk-block: hardware: no software: yes address: <filter> bt-v: 5.3 lmp-v: 12
status: discoverable: no pairing: no
Drives:
Local Storage: total: 931.51 GiB used: 386.28 GiB (41.5%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/nvme0n1 maj-min: 259:0 vendor: Samsung model: SSD 980 PRO 1TB
size: 931.51 GiB block-size: physical: 512 B logical: 512 B speed: 63.2 Gb/s
lanes: 4 tech: SSD serial: <filter> fw-rev: 2B2QGXA7 temp: 40.9 C
scheme: GPT
Partition:
ID-1: / raw-size: 896.96 GiB size: 896.96 GiB (100.00%)
used: 386.28 GiB (43.1%) fs: btrfs dev: /dev/dm-0 maj-min: 253:0
mapped: luks-3d769afd-2828-481c-8e36-8aba99397d5a
ID-2: /boot/efi raw-size: 300 MiB size: 299.4 MiB (99.80%)
used: 768 KiB (0.3%) fs: vfat dev: /dev/nvme0n1p1 maj-min: 259:1
ID-3: /home raw-size: 896.96 GiB size: 896.96 GiB (100.00%)
used: 386.28 GiB (43.1%) fs: btrfs dev: /dev/dm-0 maj-min: 253:0
mapped: luks-3d769afd-2828-481c-8e36-8aba99397d5a
ID-4: /var/log raw-size: 896.96 GiB size: 896.96 GiB (100.00%)
used: 386.28 GiB (43.1%) fs: btrfs dev: /dev/dm-0 maj-min: 253:0
mapped: luks-3d769afd-2828-481c-8e36-8aba99397d5a
ID-5: /var/tmp raw-size: 896.96 GiB size: 896.96 GiB (100.00%)
used: 386.28 GiB (43.1%) fs: btrfs dev: /dev/dm-0 maj-min: 253:0
mapped: luks-3d769afd-2828-481c-8e36-8aba99397d5a
Swap:
Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default) zswap: no
ID-1: swap-1 type: file size: 64 GiB used: 0 KiB (0.0%) priority: -2
file: /swapfile
ID-2: swap-2 type: zram size: 31.13 GiB used: 1 MiB (0.0%) priority: 100
comp: zstd avail: lzo-rle,lzo,lz4,lz4hc,deflate,842 max-streams: 8
dev: /dev/zram0
ID-3: swap-3 type: partition size: 34.25 GiB used: 0 KiB (0.0%)
priority: -3 dev: /dev/dm-1 maj-min: 253:1
mapped: luks-a59fcb28-cd12-4a13-abcf-1ad9ee0585a5
Sensors:
System Temperatures: cpu: 53.0 C mobo: N/A
Fan Speeds (rpm): cpu: 3461
Info:
Memory: total: 32 GiB note: est. available: 31.13 GiB used: 7.59 GiB (24.4%)
Processes: 354 Power: uptime: 44m states: freeze,mem,disk suspend: s2idle
avail: deep wakeups: 0 hibernate: platform avail: shutdown, reboot,
suspend, test_resume image: 12.41 GiB services: org_kde_powerdevil,
power-profiles-daemon, thermald, upowerd Init: systemd v: 257
default: graphical tool: systemctl
Packages: pm: pacman pkgs: 2325 libs: 509 tools: octopi,pamac,paru,yay
Compilers: clang: 19.1.7 gcc: 14.2.1 Shell: garuda-inxi default: fish
v: 4.0.2 running-in: konsole inxi: 3.3.38
Garuda (2.7.2-1):
System install date:     2022-05-10
Last full system update: 2025-04-24 ↻
Is partially upgraded:   No
Relevant software:       snapper NetworkManager mkinitcpio
Windows dual boot:       No/Undetected
Failed units:

1/2 Solution

After thinking and researching, I found the ~/.config/libinput-gestures.conf file.
So I created a copy ~/.config/libinput-gestures.conf.bak.
Now I deleted the 3 finger gestures in the gui and re-added them.

Running a diff:

diff ~/.config/libinput-gestures.conf.bak ~/.config/libinput-gestures.conf
19,20d18
< gesture swipe right 3 xdotool key alt+Left
< gesture swipe left 3 xdotool key alt+Right
21a20,21
> gesture swipe left 3 xdotool key alt+Right
> gesture swipe right 3 xdotool key alt+Left

Hmmmm. :thinking: nothing has really changed, only the position of the config lines.
Before the migration I used X11, now wayland.
Holdup. What do I see there? xdotool? :face_with_raised_eyebrow: even after deleting and adding them again?
This should be ydotool!

Editing the file by hand, replacing xdotool with ydotool.
Restarting the service with:

systemctl --user restart libinput-gestures.service

and for good measure:

libinput-gestures-setup restart

. . . Still not working, WHY?!

Testing:

sleep 10 && ydotool key alt+Left

Switching to browser, nothing happens.

Grrr!

ydotool key --help
[...]
See `/usr/include/linux/input-event-codes.h' for available key codes (KEY_*).

Finding:

#define KEY_LEFTALT		56
#define KEY_LEFT		105
#define KEY_RIGHT		106

Lets try:

sleep 3 && ydotool key 56:1 105:1 105:0 56:0 

Hey it works!

So now config:

gesture swipe left 3 ydotool key 56:1 106:1 106:0 56:0
gesture swipe right 3 ydotool key 56:1 105:1 105:0 56:0

restart:

libinput-gestures-setup restart

And now I can use my back alt+left gesture again :sob: but alt+right swipe switches desktop, whhhhhyyyyyy

even if I remove the 4 finger gesture from the ui and config file and reload, it still switches the desktop with 3 fingers swipe to the left.
Why?!

First thing, after upd, reboot the system.
May help, but maybe not.


  • After rebooting, post the FULL output of garuda-inxi in the body of the post (not linked externally, or collapsed with the “hide details” feature)
2 Likes

Sadly no, that is not the solution. Because I did update today and I did restart my system again just to make sure.

garuda-update
:: Synchronizing package databases...
garuda is up to date
core is up to date
extra is up to date
multilib is up to date
chaotic-aur is up to date

--> Refreshing mirrorlists using rate-mirrors, please be patient..🍵

:: Synchronizing package databases...
garuda downloading...
core downloading...
extra downloading...
multilib downloading...
chaotic-aur downloading...
spawn pacman -Su
:: Starting full system upgrade...
warning: snapper-tools: local (1.3.1-1.6) is newer than chaotic-aur (1.3.1-1)
there is nothing to do

System updated! 🐧
uptime
16:23:25 up 4 min,  1 user,  load average: 1,62, 0,92, 0,40

Where else, when not libinput-gestures are such gestures defined. :thinking:

Running kwin version 6.3.4 and . . .

these gestures are hard coded for virtualdesktops -_-

I now removed 2 of my 3 virtualdesktops and the issue is “fixed”.
Now I have to live with no virtual desktops if I want to keep my gestures.


4 Likes

Similiar topic with the same outcome:

1 Like

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.