Description
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.