Skip to content

Wayland Roadmap #196

Open
Open
@kwhat

Description

@kwhat

It looks like Wayland is now the default option on several distributions and supporting it is becoming more of a priority. There are still a number of features missing from the Wayland ecosystem and fragmentation is going to be a real problem for any software trying to support multiple compositors. Getting this library to work with Wayland is going to require a combination of runtime dependency loading, XDG Portals and cutting features that aren't available. I have created this bug to track the progress of the outstanding issues. Please add any information or ideas you may have to this ticket.

  • hook_create_screen_info(unsigned char *count);

Support Added

Support was added using wl_output_interface provided by Wayland. This provides enough information to satisfy this requirement.

Gnome/GTK Support

gdbus call -e -d org.gnome.Mutter.DisplayConfig -o /org/gnome/Mutter/DisplayConfig -m org.gnome.Mutter.DisplayConfig.GetCurrentState

We need to use something like glib g_variant_get() https://github.com/fzwoch/obs-gnome-screencast/blob/master/gnome-mutter-screencast.c#L90 to pare this information.

Plasma/QT Support

Unknown

X11

Continue to use XRandr / Xinerama but change the code to use dlsym and convert from a compile time dependency to a runtime dependency.

Other Compositor

Unknown, we may need to cut this feature unless we can use XDG Portal to acquire monitor info.


  • hook_get_auto_repeat_rate();

Gnome/GTK Support

Unknown

Plasma/QT Support

Unknown

X11

Continue to use XkbGetAutoRepeatRate / XF86MiscGetKbdSettings but change the code to use dlsym and convert from a compile time dependency to a runtime dependency.

Other Compositor

Unknown. As it currently stands, this feature will likely be removed from all platforms.


  • hook_get_auto_repeat_delay();

Gnome/GTK Support

Unknown

Plasma/QT Support

Unknown

X11

Continue to use XkbGetAutoRepeatRate / XF86MiscGetKbdSettings but change the code to use dlsym and convert from a compile time dependency to a runtime dependency.

Other Compositor

Unknown. As it currently stands, this feature will likely be removed from all platforms.


  • hook_get_pointer_acceleration_multiplier();

Gnome/GTK Support

Unknown

Plasma/QT Support

Unknown

X11

Continue to use XGetPointerControl but change the code to use dlsym and convert from a compile time dependency to a runtime dependency.

Other Compositor

Unknown. As it currently stands, this feature will likely be removed from all platforms.


  • hook_get_pointer_acceleration_threshold();

Gnome/GTK Support

Unknown

Plasma/QT Support

Unknown

X11

Continue to use XGetPointerControl but change the code to use dlsym and convert from a compile time dependency to a runtime dependency.

Other Compositor

Unknown. As it currently stands, this feature will likely be removed from all platforms.


  • hook_get_pointer_sensitivity();

Gnome/GTK Support

Unknown

Plasma/QT Support

Unknown

X11

Continue to use XGetPointerControl but change the code to use dlsym and convert from a compile time dependency to a runtime dependency.

Other Compositor

Unknown. As it currently stands, this feature will likely be removed from all platforms.


  • hook_get_multi_click_time();

Gnome/GTK Support

Bus Name: org.freedesktop.portal.Desktop
Object Path: /org/freedesktop/portal/desktop
Interface: org.freedesktop.portal.Settings

Read("org.gnome.settings-daemon.peripherals.mouse", "double-click")

Plasma/QT Support

Unknown

X11

Continue to use XtGetMultiClickTime / XGetDefault but change the code to use dlsym and convert from a compile time dependency to a runtime dependency.

Other Compositor

Unknown. This is kind of a critical feature for tracking click count for mouse events. If we cant find a solution to this problem, we will have to drop the click count tracking from events.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions