This meta-issue track the status of different issues in Projecteur on wayland compositors.
Issues with taking screenshot: Projecteur takes screenshot in wayland using compositor specific DBus interfaces for Gnome and KDE (see https://github.com/jahnf/Projecteur/blob/develop/src/linuxdesktop.cc). However, this is not an universal solution for all wayland compositors and additionally these DBus interfaces (being non-standard) can be phased out/changed in the future. For example, Gnome removed their DBus interface in version 41+ (https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1970, https://github.com/flameshot-org/flameshot/issues/1910). Hence, it is better to use standard way of taking screenshots on wayland, i.e. through xdg-desktop-portal. I have submitted a sample implementation in PR #173 . However, taking screenshot with xdg-desktop-portal needs user-intervention (not ideal for Projecteur use case). However, there is a bug report filed in this regard (https://github.com/flatpak/xdg-desktop-portal/issues/649). With that issue fixed in the future (hopefully), we can drop custom DBus interfaces and use xdg-desktop-portal based screenshot approach primarily for wayland. Additionally, using xdg-desktop-portal based screenshot also has advantage, if we want to distribute flatpak, or AppImage in the future.
Issue with overlay window placement: On Spotlight::spotActiveChanged event, Projecteur tries to bring up overlay window. However, the QWindow::setPosition do not work in wayland as per this blog post leading to wrong placement as suggested by some users in #170 . Additionally, other function used (like QWindow::showFullScreen and QWindow::raise) are also not supported on wayland.
Window flags for overlay window do not work properly in wayland.
This meta-issue track the status of different issues in Projecteur on wayland compositors.
Issues with taking screenshot: Projecteur takes screenshot in wayland using compositor specific DBus interfaces for Gnome and KDE (see https://github.com/jahnf/Projecteur/blob/develop/src/linuxdesktop.cc). However, this is not an universal solution for all wayland compositors and additionally these DBus interfaces (being non-standard) can be phased out/changed in the future. For example, Gnome removed their DBus interface in version 41+ (https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1970, https://github.com/flameshot-org/flameshot/issues/1910). Hence, it is better to use standard way of taking screenshots on wayland, i.e. through
xdg-desktop-portal
. I have submitted a sample implementation in PR #173 . However, taking screenshot withxdg-desktop-portal
needs user-intervention (not ideal for Projecteur use case). However, there is a bug report filed in this regard (https://github.com/flatpak/xdg-desktop-portal/issues/649). With that issue fixed in the future (hopefully), we can drop custom DBus interfaces and usexdg-desktop-portal
based screenshot approach primarily for wayland. Additionally, usingxdg-desktop-portal
based screenshot also has advantage, if we want to distribute flatpak, or AppImage in the future.Issue with overlay window placement: On Spotlight::spotActiveChanged event, Projecteur tries to bring up overlay window. However, the QWindow::setPosition do not work in wayland as per this blog post leading to wrong placement as suggested by some users in #170 . Additionally, other function used (like QWindow::showFullScreen and QWindow::raise) are also not supported on wayland.
Window flags for overlay window do not work properly in wayland.