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.
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.
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.
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.
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.
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.
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.
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.
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.
Support Added
Support was added using wl_output_interface provided by Wayland. This provides enough information to satisfy this requirement.
Gnome/GTK Supportgdbus call -e -d org.gnome.Mutter.DisplayConfig -o /org/gnome/Mutter/DisplayConfig -m org.gnome.Mutter.DisplayConfig.GetCurrentStateWe 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 SupportUnknownX11
Continue to use XRandr / Xinerama but change the code to use dlsym and convert from a compile time dependency to a runtime dependency.
Other CompositorUnknown, we may need to cut this feature unless we can use XDG Portal to acquire monitor info.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.
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.
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.
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.
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.
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.