rocksdanister / lively

Free and open-source software that allows users to set animated desktop wallpapers and screensavers powered by WinUI 3.
https://rocksdanister.com/lively
GNU General Public License v3.0
15k stars 1.06k forks source link

Resize image to desired screensize before launching as window #2037

Closed 0qln closed 10 months ago

0qln commented 10 months ago

Problem

Images that are bigger than they need to be to show in desired quality for the screen take up a lot of memory. The way I have been doing things until now, is resizing the images externally for the resolution I need. But this get's annoying to do when having to repeat this for every image. Additionaly, this process has to be done multiple times for each image, when one has monitors of different resolution or alignment.

Solution Proposal

Before lauching the image as a window for the wallpaper, the image should automatically be resized (and or cropped) to the minimum size needed.

Additinal Information

I have currently not found the time to search for and install all needed dependecies to build and debug Lively. I will notify when I can take on the implementation of this feature.

rocksdanister commented 10 months ago

You are talking about using pictures as wallpaper? Lively is just using the MPV video player which has limitations and high memory usage.

The most efficient solution is to simply set the image as Windows wallpaper, there is already an implementation for this but not used since I can't reset the wallpaper when closing and screensaver requires window.

Before lauching the image as a window for the wallpaper, the image should automatically be resized (and or cropped) to the minimum size needed.

This won't be necessary, since I do plan to just switch to setting as Windows wallpaper in the future.

0qln commented 10 months ago

The most efficient solution is to simply set the image as Windows wallpaper, there is already an implementation for this but not used since I can't reset the wallpaper when closing and screensaver requires window.

Using windows only does not give the customizability that Lively can offer. Just setting different wallpapers for different screens is not really possible with vanilla windows. If windows offered customizability options like Lively, there wouldn't be a point for it.

You are talking about using pictures as wallpaper? Lively is just using the MPV video player which has limitations and high memory usage.

Yes, and also videos, but for now I was just focusing on pictures as the resizing would be a quick implementation and if the goal is performance, you would generaly stray away from videos as wallpapers anyway.

This won't be necessary, since I do plan to just switch to setting as Windows wallpaper in the future.

I am not known with the details of the Lively backend, but I assume implementing this for pictures would set a first step to implement this for videos as well, for which memory usage is an even more important aspect. If it doesn't matter, do you plan on implementing it such that a single big image (composed of the different images the client selects monitor-wise) which then spans across monitors? I suppose that would be quite reasonable approach which will implement the feature in question indirectly.

Considering you are probably busy with more important changes, I can offer to implement this and create a PR?

rocksdanister commented 10 months ago

Using windows only does not give the customizability that Lively can offer. Just setting different wallpapers for different screens is not really possible with vanilla windows. If windows offered customizability options like Lively, there wouldn't be a point for it.

This is possible and already implemented.

No third party software is even needed, can be done directly from Windows:

image
0qln commented 10 months ago

I have seen claims like that online but (atleast for me) I can only set different backgrounds for desktops and not monitors. image

rocksdanister commented 10 months ago

Because the Windows UI is not great.

When you have virtual desktops open the menu changes to desktop, close them:

image

Once it looks like this that menu should update to monitor:

image
0qln commented 10 months ago

I cant help but laugh at his 😂Who even is resonsible for the UI at microsoft??

Anyway, thanks for your patience with me...

That being said, I will continue to use Lively so I wont have to get headaches from interacting with the windows settings... when the time comes that I found the time to set up a fork of Lively and havn't switched to Linux already, I will just implement this for me, cause having a 500mb wallpaper really triggers my undiagnosed ocd...

thanks for creating this tool :)