jahnf / Projecteur

Linux Desktop Application for the Logitech Spotlight device (and similar devices) - Digital Laser Pointer
MIT License
374 stars 33 forks source link

[Meta-issue] Wayland related issues in Projecteur #174

Open mayanksuman opened 2 years ago

mayanksuman commented 2 years ago

This meta-issue track the status of different issues in Projecteur on wayland compositors.

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

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

  3. Window flags for overlay window do not work properly in wayland.

mayanksuman commented 2 years ago

The issue regarding non-interactive screenshot is fixed (https://github.com/flatpak/xdg-desktop-portal/issues/649). I will submit a PR soon.