hyprwm / hyprpaper

Hyprpaper is a blazing fast wayland wallpaper utility with IPC controls.
https://wiki.hyprland.org/Hypr-Ecosystem/hyprpaper/
BSD 3-Clause "New" or "Revised" License
761 stars 55 forks source link

option to apply wallpaper immediately #153

Open KorigamiK opened 5 months ago

KorigamiK commented 5 months ago

Hyprpaper uses too much memory as you add more and more preload targets. An ability to use it in without preload and applying the wallpaper immediately would greatly help!

Thanks

vaxerski commented 5 months ago

preload + wallpaper + unload?

You can't "directly" load a wallpaper. You need to preload it into memory first..

KorigamiK commented 5 months ago

preload + wallpaper + unload?

You can't "directly" load a wallpaper. You need to preload it into memory first..

Ik I can do that but it's a common use case that can be supported through the cli

vaxerski commented 5 months ago

it's wasteful and kinda not that simple to implement, though.

KorigamiK commented 5 months ago

it's wasteful and kinda not that simple to implement, though.

Since the ipc consumes a lot of battery, a command to set a wallpaper instead would be great and a lot of people won't need to enable IPC. I'm not really sure on the implementation part of a command though, I believe it can be done

vaxerski commented 5 months ago

the wallpaper needs to be kept in memory because whenever you add a monitor, or change its resolution, it needs to be re-rendered...

KorigamiK commented 5 months ago

the wallpaper needs to be kept in memory because whenever you add a monitor, or change its resolution, it needs to be re-rendered...

So keeping just the current wallpaper preloaded is a good idea?

vaxerski commented 5 months ago

yes, that's what hyprctl hyprpaper unload unused does

anufrievroman commented 3 months ago

With waypaper we also struggled a bit to implement hyprpaper support, partly because of this story of preload/unload via hyprctl. All other wallpaper managers just use one command to set a new wallpaper (i.e. load it, set it, and unload previous). Anyway, we finally made it work, but the idea of this implementation is really original to say the least :D