GhostNaN / mpvpaper

A video wallpaper program for wlroots based wayland compositors.
GNU General Public License v3.0
713 stars 21 forks source link

Feature Request: Multiple monitor wallpapers? #59

Closed sklous1234 closed 6 months ago

sklous1234 commented 6 months ago

In wallpaper engine video wallpapers can span across multiple monitors, can this currantly be done in mpvpaper, if not please could this be added.

GhostNaN commented 6 months ago

mpvpaper '*' /path/to/video

sklous1234 commented 6 months ago

i meant can one wallpaper be stretch across 2 or 3 different displays

GhostNaN commented 6 months ago

I understand now. In that case, mpvpaper cannot do this action. This could be technically possible by combining mpv options like: --video-pan-x --video-crop video-scale-x

Although there are a lot of factors here like handling where the monitors are and how to split the video. So it would be a huge pain to implement well. But ultimately it would require sending a mpv set command like: mpv_command(mpv, (const char*[]) {"set", "video-pan-x", "0.3", NULL}); Literally every frame if controlled via libmpv. Which is way too much for something libmpv to handle. The only alternative being to manipulate the OpenGL FBO (if that's even possible)

So I probably won't be implementing this into mpvpaper. Unless there is some other method I glossed over.

sklous1234 commented 6 months ago

Never mind then.

I could just take a video, make it into 2 separate videos and apply them individually to each monitor.

GhostNaN commented 6 months ago

To save you some trouble, I was able to achieve the same "effect" with just using the --video-crop mpv option. For example, for an 32/9 1080p video it could look something like this: Monitor 1: mpvpaper -o "video-crop=1920x1080+0+0" DP-3 /my/32_9_video Monitor 2: mpvpaper -o "video-crop=1920x1080+1920+0" DP-2 /my/32_9_video See here for more details: https://mpv.io/manual/master/#options-video-crop

Hope this helps.