jahnf / Projecteur

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

[BUG] Fedora 31/Wayland - No system tray / preferences dialog #62

Closed fmuelle4711 closed 4 years ago

fmuelle4711 commented 4 years ago

On Fedora 31 w/ gnome, there is no icon or settings menu (even after -c settings=show) ever. Tried Topicons Plus and Dash to Panel. It shows up in the application menu but the running program is not handled by (not visible to) gnome. Looks like it's time to switch away from Wayland/gnome (wanted to give it a try), back to KDE. Otherwise working.

jahnf commented 4 years ago

So yesterday in a virtual machine I tried Fedora 31. The TopIcons Plus seems not to work on Fedora 31 (as an easy google search reveals)

But luckily there is an alternative that works: https://extensions.gnome.org/extension/615/appindicator-support/

Appindicator-extension

I could always show the settings with -c settings=show for a running instance though, with or without system tray.

jahnf commented 4 years ago

Mentioned Topicons alternative in README (fa594cd7fe5662cd6e16b2f224ae36ef4981c9f1)

fmuelle4711 commented 4 years ago

Yes, I can confirm both, works great, thanks!

BTW, got an Android app (Accelerometer Mouse) that actually uses the gyro working by modifying the Linux server side to act as a mouse, which makes your Android phone a Spotlight device. It's a prototype, needs integration into KDE connect / gsconnect.

On Thu, 13 Feb 2020 03:24:55 -0800 "Jahn F." notifications@github.com wrote:

So yesterday in a virtual machine I tried Fedora 31. The TopIcons Plus seems not to work on Fedora 31 (as an easy google search reveals)

But luckily there is an alternative that works: https://extensions.gnome.org/extension/615/appindicator-support/

Appindicator-extension

I could always show the settings with -c settings=show for a running instance though, with or without system tray.

jahnf commented 4 years ago

BTW, got an Android app (Accelerometer Mouse) that actually uses the gyro working by modifying the Linux server side to act as a mouse, which makes your Android phone a Spotlight device. It's a prototype, needs integration into KDE connect / gsconnect.

Cool, do you have it running and would it be detected as separate device (so it could be used together with Projecteur)?

(closing this issue as resolved - feel free to reply here anyway regarding the gyro app + server)

fmuelle4711 commented 4 years ago

I have it running w/ my device-extended branch of projecteur. The server-side app uses evemu right now to trigger mouse events on any real device (e.g., my track point), which works.

What would be good is to have it trigger /dev/uinput events. About that: How would projecteur's uinput branch allow interaction? It seems it's intended not for mouse events but some other input? Is this documented anywhere? I could not find it in the branch.

On Thu, 13 Feb 2020 06:04:49 -0800 "Jahn F." notifications@github.com wrote:

BTW, got an Android app (Accelerometer Mouse) that actually uses the gyro working by modifying the Linux server side to act as a mouse, which makes your Android phone a Spotlight device. It's a prototype, needs integration into KDE connect / gsconnect.

Cool, do you have it running and would it be detected as separate device (so it could be used together with Projecteur)?

(closing this issue as resolved - feel free to reply here anyway regarding the gyro app + server)

jahnf commented 4 years ago

I merged the uninput branch yesterday to develop. The /dev/uinput integration is currently not really used at all (besides turning the zoom on and off with a double click) - but is a really important step towards button mapping.

Before the uinput integration, Projecteur was only listening to device relative move events (mouse move events) and with that turning the spotlight on and off.

With uinput - all the device events are 'grabbed' (means only Projecteur sees the events) - and currently just forwarded to uinput - basically playing 'man in the middle'. The great thing about that is as mentioned before you implement button mapping and also create fake mouse and button events.

fmuelle4711 commented 4 years ago

Is there sample code for intercepting events / creating new ones, i.e. how to write a wrapper?

jahnf commented 4 years ago

If you are interested in creating events via uninput have a look at https://github.com/jahnf/Projecteur/blob/develop/src/virtualdevice.cc (contributed by @mayanksuman)

For Projecteur, I plan to implement button mapping that will allow the user to map certain events from their presentation device to either a specified action and/or to another key/button event (see #69)