Skip to content

gestures: Add support for wayland sessions.#13644

Draft
mtwebster wants to merge 5 commits intolinuxmint:masterfrom
mtwebster:gestures-native
Draft

gestures: Add support for wayland sessions.#13644
mtwebster wants to merge 5 commits intolinuxmint:masterfrom
mtwebster:gestures-native

Conversation

@mtwebster
Copy link
Member

Unfortunately the way relevant events are handled in muffin differs
enough between session types that we need to keep touchegg support
for x11, at least for now.

  • Refactor the GesturesManager to support both touchegg and native
    clutter/libinput events.
  • Actual gesture actions behavior are unchanged.
  • Port actions to use js/misc/mprisPlayer, remove gestures-specific
    mpris code
  • Use Main.screensaverController for locked state tracking.

Todo:

  • Touchpad gestures work only if the touchpad is enabled. This would
    seem logical, but is only the case for Wayland - in x11, gestures
    work regardless.
  • Only tested with touchpads so far. Need to test touchscreen
    behavior.

ref: linuxmint/wayland#99

Unfortunately the way relevant events are handled in muffin differs
enough between session types that we need to keep touchegg support
for x11, at least for now.

- Refactor the GesturesManager to support both touchegg and native
  clutter/libinput events.
- Actual gesture actions behavior are unchanged.

Todo:
- Touchpad gestures work only if the touchpad is enabled. This would
  seem logical, but is only the case for Wayland - in x11, gestures
  work regardless.
- Only tested with touchpads so far. Need to test touchscreen
  behavior.

ref: linuxmint/wayland#99
One mpris manager for all consumers now (applet, screensaver,
gestures).
@github-actions
Copy link

Best-practices scanner

This is a regex-based check for API usage that can pose security, performance or
maintainability issues, or that may already be provided by Cinnamon. Having code flagged
by it doesn't automatically disqualify a pull request.

This check is not perfect will not replace a normal review.


Found 2 potential issue(s):

⚠️ raw_mpris_dbus

js/misc/mprisPlayer.js:543

//   org.mpris.MediaPlayer2.name.instanceXXXX

(Cinnamon 6.8) Use imports.misc.mprisPlayer.getMprisPlayerManager() for a high-level API
that automatically discovers and tracks MPRIS players, handles proxy setup,
and provides playback control, metadata, and capability accessors.
For lower-level access, use imports.misc.interfaces.getDBusProxyWithOwner().

js/misc/mprisPlayer.js:545

//   org.mpris.MediaPlayer2.name-XXXX

(Cinnamon 6.8) Use imports.misc.mprisPlayer.getMprisPlayerManager() for a high-level API
that automatically discovers and tracks MPRIS players, handles proxy setup,
and provides playback control, metadata, and capability accessors.
For lower-level access, use imports.misc.interfaces.getDBusProxyWithOwner().


Automated pattern check.

@mtwebster mtwebster marked this pull request as draft March 17, 2026 01:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant