danyspin97 / wpaperd

Modern wallpaper daemon for Wayland
GNU General Public License v3.0
332 stars 26 forks source link

Span across multiple displays #2

Open ecocode opened 2 years ago

ecocode commented 2 years ago

Hi,

This is nice. Would you consider adding feature to span a wallpaper across multiple outputs ?

danyspin97 commented 2 years ago

Hi!

This is a good idea. However, it seems to me that it isn't easy to implement. I have to think a bit on how to get the outputs and their position.

I am also thinkg about the assoctiated configuration in output.conf. Maybe adding a group key for each output seems a good way to go. What do you think?

progandy commented 2 years ago

This is a good idea. However, it seems to me that it isn't easy to implement. I have to think a bit on how to get the outputs and their position.

xdg_output should have the logical_position.

Edit: Or just let the user configure the positions manually. If you want to get really fancy, you could allow the user to define physical position as well to compensate for bezels and other gaps between monitors or even fix the perspective if monitors are not in one plane.

Shinyzenith commented 2 years ago

Hi!

This is a good idea. However, it seems to me that it isn't easy to implement. I have to think a bit on how to get the outputs and their position.

I am also thinkg about the assoctiated configuration in output.conf. Maybe adding a group key for each output seems a good way to go. What do you think?

I think I can implement this, once I'm done with my fork of wpaperd, I'll send a patch.

danyspin97 commented 2 years ago

That would be great, thank you! Let me know if you need any help or review :)

Shinyzenith commented 2 years ago

So a small update on my message that I posted above. I needed a similar algorithm of figuring out display bounds on wlroots which I haven't figured out yet (after pouring approximately 9 hours into wrong implementations).. this is taking wayyy longer than I expected and I'm in touch with a smithay dev regarding it. Hoping to find a solution soon.

Cheers.

danyspin97 commented 2 years ago

Thank you for the update and for working on this 😄 I think having a look at how wdisplays get this info would be a good start. Also consider that smithay-client-toolkit is currently being refactored and reworked for the next update, so wpaperd would also require to be refactored and updated as well.

Shinyzenith commented 2 years ago

Thank you for the update and for working on this smile I think having a look at how wdisplays get this info would be a good start. Also consider that smithay-client-toolkit is currently being refactored and reworked for the next update, so wpaperd would also require to be refactored and updated as well.

absolutely, wayland-rs 0.3 will be a huge breaking change... I will try and help out with the refactor. As for the display bounds I tried using smithay_client_toolkit::output::OutputInfo location field.

CardboardTurkey commented 1 year ago

Any progress on this?

danyspin97 commented 1 year ago

No progress yet unfortenately. wpaperd has been refactored, but before implementing this feature I'd like to create a wpaper command line program to get the info about the current system and have a next command.