jahnf / Projecteur

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

Feature Request: Multi-Screen Overlay #80

Closed maehne closed 3 years ago

maehne commented 4 years ago

Is your feature request related to a problem? Please describe.

In issue #76, I tested Projecteur's multiscreen support. Currently, only one screen gets dimmed if the spotlight gets activated. This is in many cases desirable, e.g., when using the spotlight function in a presentation with a tool providing a presenter console (e.g., pdfpc). However, it might in other occasions also be desirable that all screens get dimmed when the spotlight is active, e.g., when demonstrating some complex program, which manages multiples windows distributed across several screens.

Describe the solution you'd like

For the latter use case, I think it would be beneficial to add an option to the Projecteur GUI that if enabled would cause all screens to be dimmed (see my idea in issue #76).

@jahnf reacted to this idea:

Good idea :+1:, might be possible - it would involve multiple overlay windows though (one per screen). I'll remember to try that at some point.

For the smoothest user experience, partial spotlights would be shown on two screens if the spotlight approaches the screen borders. Though, spotlight shapes might not fully match in size if the scaling / resolution / size of the screens differs.

However, I wonder if multiple windows are necessary to implement this feature. At least on KDE Plasma, a window can be resized to cover seamlessly multiple screens.

Describe alternatives you've considered

I don't see other alternative at the moment.

jahnf commented 4 years ago

However, I wonder if multiple windows are necessary to implement this feature. At least on KDE Plasma, a window can be resized to cover seamlessly multiple screens.

Yes this needs some investigation. But it must also be considered that screens can not only be ordered side-by-side and each screen can have quiet different screen resolutions. Additionally - currently the spotlight size is currently a percentage of the screen resolution height. (which is currently the same as the overlay window size)

mrshu commented 4 years ago

Hello everyone,

Would you have any pointers as to where to start with something like this? Having Projecteur on just one screen is pretty tough for me and so I'd like to help with that if possible.

Thanks!

jahnf commented 4 years ago

Hi Marek great that you like to contribute. I'll try to put together some hints and pointers for you tomorrow, so that you could start on a feature branch. Do you have (some) experience with Qt and C++?

jahnf commented 4 years ago

Alright, so here are some thoughts - don't know if they will help you :smile: - but anyway:

jahnf commented 4 years ago

FYI, I started working on this feature - hopefully I can soon provide a version to check out on the related feature branch.

mrshu commented 4 years ago

Sorry @jahnf, I sadly haven't had a time to take a closer look at the code here.

Should you be able to put something on a feature branch, I'd be happy to test it out and provide feedback on various multi-screen setups.

Thanks again!

jahnf commented 3 years ago

@maehne @mrshu When you have time you can test the early version of the multi-screen overlay, so that issues that might come with different setups can be tackled.

Known issues in this current version on the feature/multi-screen-overlay branch:

edit: also attaching screens and removing them during the application runtime is not yet handled (but will be)

mrshu commented 3 years ago

Hi @jahnf,

I only got to trying this out now, when you merged it in. I tested the 0.9-alpha.64 version on Fedora 31 (I got it from https://bintray.com/jahnf/Projecteur/projecteur-develop/0.9-alpha.64#files/packages/branches/develop/0.9-alpha.64). Note that I ran Gnome on X server.

After clicking on Enable multi-screen overlay, everything worked as I'd expect it to -- even zoom -- on all of the attached screens. I did not test adding/removing screens and geometry changes but I am happy to, if that would be valuable.

Thanks again for investing time into this -- Projecteur will be a standard part of my talk-giving setup from now on.

jahnf commented 3 years ago

@mrshu - great to hear! I don't expect any hiccups on adding/removing screens or resolution changes - but then again, you never know, so it would be great if you can test it on your setup.

And as an unrelated question: Does the bash auto completion work on your Fedora? I added it a few weeks ago to the packages but only really tested it on Ubuntu :grinning:

mrshu commented 3 years ago

Does the bash auto completion work on your Fedora?

I tested it out now and it works out of the box.

Nicely done!