Projecteur: [BUG] Projecteur doesn't seem to work all that well on Gnome with Wayland on Fedora

Description

While trying out Projecteur on Gnome with Wayland on Fedora, I came across a couple of issues. Projecteur is still very useful and I use it with Gnome on X.org with a great success but seeing how Wayland will probably be the only reasonable option in the future, I wanted to note my experience here.

Thanks!

To Reproduce

Just starting projecteur and clicking the main “zoom” button multiple times ends up generating the following log:

[2021-10-09T11:53:08.511][wrn][default] QObject::connect: No such signal QPlatformNativeInterface::systemTrayWindowChanged(QScreen*)
[2021-10-09T11:53:08.525][inf][projecteur.device] Connected device: Logitech Spotlight (USB) (046d:c53e)
[2021-10-09T11:53:08.563][inf][projecteur.HID] HID++ device '/dev/hidraw2' came online.
[2021-10-09T11:53:13.537][wrn][qt.qpa.wayland] Wayland does not support QWindow::requestActivate()
[2021-10-09T11:53:13.538][wrn][qt.qpa.wayland] Wayland does not support QWindow::requestActivate()
[2021-10-09T11:53:15.202][wrn][qt.qpa.wayland] Wayland does not support QWindow::requestActivate()
[2021-10-09T11:53:15.921][wrn][qt.qpa.wayland] Wayland does not support QWindow::requestActivate()
[2021-10-09T11:53:15.921][wrn][qt.qpa.wayland] Wayland does not support QWindow::requestActivate()
[2021-10-09T11:53:17.486][wrn][qt.qpa.wayland] Wayland does not support QWindow::requestActivate()
[2021-10-09T11:53:18.087][wrn][qt.qpa.wayland] Wayland does not support QWindow::requestActivate()
[2021-10-09T11:53:18.087][wrn][qt.qpa.wayland] Wayland does not support QWindow::requestActivate()
[2021-10-09T11:53:19.081][wrn][qt.qpa.wayland] Wayland does not support QWindow::requestActivate()

While all this is happening, the pointer doesn’t respond to movement and it also seems that further clicking only generates the Wayland does not support QWindow::requestActivate() message.

Expected behavior

I would expect Projecteur to work the same way as it does on X.org (i.e. clicking and moving with the pointer would work out of the box).

Desktop/Linux Environment (please complete the following information):

  • Linux Distribution and Version: Fedora 34
  • Desktop/Window Manager and Version Gnome 40.4
  • Did you built Projecteur yourself?: n
  • What is the output of projecteur -f ?:
Projecteur 1.0-alpha.118
 - git-branch: develop
 - git-hash: 21e5e606ff2fb5daf712d66fc2a77cdb7aa3cdde
 - compiler: GNU 10.1.1
 - build-type: Release
 - qt-version: (build: 5.13.2, runtime: 5.15.2)
 - device-scan: (errors: 0, devices: 1 [readable: 1, writable: 1])
  • What is the output of projecteur -d ?: …
Projecteur 1.0-alpha.118; device scan

 * Found 1 supported devices. (1 readable, 1 writable)

 +++ name:     'Logitech USB Receiver'
     userName: 'Logitech Spotlight (USB)'
     vendorId:  046d
     productId: c53e
     phys:      usb-0000:00:14.0-3
     busType:   BusType::Usb
     devices:   /dev/hidraw2, /dev/input/event19, /dev/input/event22, /dev/input/event20, /dev/input/event21
     readable:  true
     writable:  true

About this issue

  • Original URL
  • State: open
  • Created 3 years ago
  • Reactions: 2
  • Comments: 17 (9 by maintainers)

Most upvoted comments

Cheers @jahnf - Thank you so much for Projecteur!

Some suggestions, if you like…

  • If a “run command” input mapping could be easily added, using the ydotool command could “solve” the left-key/right-key/click mouse button issue?
  • Taking ~1 second to open is survivable.*
  • That leaves zoom movement as the most important issue?.

*: I note that ksnip has added Wayland support for kde and gnome, and its screenshots seem very snappy - I just converted from flameshot to ksnip to test it, and there is a notable difference - it is also Qt5 based, so maybe there is something that can be learnt here?

Thank you for all your feedback, Time is sparse right now but I will look into it.

Some details are just differently (or sometimes not implemented at all) on Qt side due to the different workings and restrictions of Wayland.

In any case, every detail or hint is appreciated.

About the zoom: The zoom with is working different with Wayland - since there is no Qt API to take a screenshot - Projecteur is using the KDE or Gnome DBus API - which saves a screenshot, which Projecteur then loads. This unfortunately takes longer then the implementation for Qt’s xcb platform plugin.

As a workaround you could use the following: QT_QPA_PLATFORM=xcb projecteur

This works at lease in a virtual machine with Fedora 34 I tried yesterday.

Sorry, I’m using Wayland.

Thanks @jahnf, I’d be happy to do any field testing you might find useful as well!