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
15.23k stars 1.07k forks source link

Wallpaper Playlist/Slideshow - Change wallpaper based on conditions. #137

Open rocksdanister opened 4 years ago

rocksdanister commented 4 years ago

Is your feature request related to a problem? Please describe. To change wallpaper you need to open the application and select the tile, as Lively supports many types of wallpaper it would be interesting to have the wallpaper change automatically without user intervention based on certain conditions.

Describe the solution you'd like wallpaper playlist would allow users to queue wallpapers to change automatically based on certain conditions such as time of day, shuffle, system sleep on-off, battery power state, windows startup and so on.

Describe alternatives you've considered Currently it is possible to make a custom webpage and change its contents only, but it is not possible to change any of the lively wallpapers.

Additional context Need to consider all cases, Wallpapers should not be changed if user is currently not on desktop! (so if user is ingame for say 8-9pm and the wallpaper was queued for 8 then it will be only changed after 9 if no new wallpaper is set for 9.)

The UI needs to be simple, ideally should look like a timeline.

rocksdanister commented 3 years ago

If I use task scheduler is it possible to delay the switch during gaming session/fullscreen app foreground?

rocksdanister commented 3 years ago

ideally a command line to exit the app (but not absolutely necessary)

I think there is a misunderstanding, Lively core needs to run always - the wallpapers (wallpaper players are separate programs) are set to close themselves if core is shutdown unexpectedly/normally; core is responsible for automatic wallpaper play/pause etc..

Commandline https://github.com/rocksdanister/lively/issues/61 support is mostly for interacting with Lively through other applications or some unique automation cases for power users.

the whole "timeline" style feature alluded to above would be fully doable, given the user knows to set tasks within Windows.

Playlist will be built into Lively and will be handled by Lively itself, commandline and taskscheduler can be used but that is not easily accessible to the average user which is Lively's focus.

Lively could also create the task scheduler entries through a UI: the task scheduler msg execute Lively with comandline arg -> Lively detects already running instances -> passes the msg to the running Lively -> loads it into queue and see if any foreground app running and wait till user on desktop to set wallpaper.

It just seems like additional steps and complication - having to remove the task scheduler entries on Lively uninstall, querying the entry to populate the UI, customising existing entry etc..

These library looks like an easy way to do it within lively itself: https://www.quartz-scheduler.net/ https://www.hangfire.io/overview.html

rocksdanister commented 3 years ago

New suggestion: ability to pause wallpaper at certain time frames. Example: Between midnight and 8am, any current wallpaper is paused.

I started working on this, ~next update will have playlist support if things go as planned.~ coming soon.

rocksdanister commented 3 years ago

I made a tutorial switching/changing wallpaper property using the new command line controls and task scheduler: https://youtu.be/iEb5DVMz3Ds

rocksdanister commented 3 years ago

Wallpaper shuffle using AutoHotKey and commandline controls: https://github.com/rocksdanister/lively/wiki/Command-Line-Controls#autohotkey

2202l commented 3 years ago

Hi, I recently watched the tutorial for changing wallpapers and automating this process via task scheduler. One drawback that I found is that, if I want to switch between wallpapers when certain conditions are met, the other wallpapers need to be in different libraries. Since I particularly like the rain effect and customization options, I opened the file location for the rainv2 library and copied the contents. I then created additional libraries and pasted the copied folders and files into these directories. Afterwards I edited the info file to display individual names for each new library. Now I have multiple libraries with the same rain effect but each with one different wallpaper.

The rest I basically copied from your video, although I made one or two alterations. I now have three files for the automatic changes. One wallpapers.txt which contains the absolute paths to the different wallpaper-libraries. One line for each path. One wallpaper.ps1 which takes a random line from the .txt file and then changes the wallpaper via livelycu.exe setwp --file “RandomLineHere” And lastly one batch file and its shortcut which executes the .ps1 script in powershell.

The batch file is now executed thirty seconds after login of any user via task scheduler. Since this is literally the first time I have ever used the Windows Powershell and/or have written scripts for windows I have no particular Idea if this is far too complicated for its own good or halfway acceptable.

My files look like this:

wallpapers.txt

`C:\Users\UsrName\AppData\Local\Lively Wallpaper\Library\wallpapers\wp01

C:\Users\ UsrName \AppData\Local\Lively Wallpaper\Library\wallpapers\wp02

C:\Users\ UsrName \AppData\Local\Lively Wallpaper\Library\wallpapers\wp03

C:\Users\UsrName\AppData\Local\Lively Wallpaper\Library\wallpapers\wp04

C:\Users\UsrName\AppData\Local\Lively Wallpaper\Library\wallpapers\wp05

C:\Users\UsrName\AppData\Local\Lively Wallpaper\Library\wallpapers\wp06

C:\Users\UsrName\AppData\Local\Lively Wallpaper\Library\wallpapers\wp07

C:\Users\UsrName\AppData\Local\Lively Wallpaper\Library\wallpapers\wp08 `

wallpapers.ps1

`$Randomline=Get-Random -InputObject (get-content C:\lively\Wallpapers.txt)

livelycu.exe setwp --file $Randomline`

wallpapers.bat

Powershell.exe -executionpolicy remotesigned -File wallpapers.ps1

Much thanks for this lovely program.

rocksdanister commented 3 years ago

@2202l just setwp then customize it after ~5sec delay(to wait for it to load) using setprop; no need for multiple wallpaper: https://github.com/rocksdanister/lively/wiki/Command-Line-Controls#customize-wallpaper

setprop --monitor 1 --property "imgSelect=image1.jpg"

Also please don't modify the Lively working directly, it should only be modified by the application itself.

2202l commented 3 years ago

Thank you for the quick answer. I will alter it shortly.

tellmewhy12 commented 3 years ago

@rocksdanister I think it would be cool if it could have an option to change with Windows Dark & Light Theme so it can be used with software like https://github.com/AutoDarkMode/Windows-Auto-Night-Mode !

One light wallpaper and one dark wallpaper :)

drosestudios commented 2 years ago

Are we getting soon the wallpaper playlist changes? I am waiting for some time this update :D @rocksdanister

rocksdanister commented 2 years ago

Its planned for v1.8 release: https://github.com/rocksdanister/lively/milestone/2

I don't have an exact date I can give you though.

tellmewhy12 commented 2 years ago

Maybe possibility to include some weather service so it can change depending on rain or sun + time?😄

tellmewhy12 commented 2 years ago

image image image

UX Idea for Wallpaper Playlist

You could add Wallpapers to the Playlist by Rightclick on Library -> Add to Playlist

rocksdanister commented 2 years ago

Good suggestion, post the UI in the redesign issue https://github.com/rocksdanister/lively/issues/969

CrazeXD commented 2 years ago

Potentially make a time range setup, that changes the wallpaper based on preset times of day. I might try making this in python since it has some packages that might be of use.

CrazeXD commented 2 years ago

Like add a new tab menu to setup time customization.

weirdalsuperfan commented 1 year ago

Would be cool to have wallpaper change based on if dark theme is enabled (system settings) or if it's after dark (the way f.lux works)

gbakeman commented 11 months ago

Just adding that I would love to have a wallpaper slideshow like you traditionally see in Windows when selecting a folder for wallpapers. In particular, I wish that we could select a folder of photos, then Lively would recursively search inside the folder for additional images, and also automatically detect new additions. I don't need any particular settings to control when certain images show, although I'm liking the suggestions people are adding here and might try them myself when it gets implemented.

Thank you!

bobjoerules commented 3 months ago

Still working on this?

rocksdanister commented 3 months ago

Yes, doing it for next feature update.

megarazor commented 1 month ago

Are you still working on this?

rocksdanister commented 1 month ago

Yes but there is no fixed release date, the plan is to do it for the next feature update like I mentioned above (no new update has been released since then.) The next update may require some patches for new Windows 24h2 update so it maybe a bugfix only.

Some work is already done, there is an easy to use command for setting random wallpaper: https://github.com/rocksdanister/lively/wiki/Command-Line-Controls#set-wallpaper