Wallpaper: minor fixes for random wallpaper picking

This commit is contained in:
LemmyCook 2025-08-29 15:21:10 -04:00
parent a2ecc67643
commit 61d13a6cab

View file

@ -150,14 +150,28 @@ Singleton {
// ------------------------------------------------------------------- // -------------------------------------------------------------------
function setRandomWallpaper() { function setRandomWallpaper() {
Logger.log("Wallpaper", "setRandomWallpaper") Logger.log("Wallpaper", "setRandomWallpaper")
for (var i = 0; i < Quickshell.screens.length; i++) {
var screenName = Quickshell.screens[i].name
var wallpaperList = getWallpapersList(screenName)
if (Settings.data.wallpaper.enableMultiMonitorDirectories) {
// Pick a random wallpaper per screen
for (var i = 0; i < Quickshell.screens.length; i++) {
var screenName = Quickshell.screens[i].name
var wallpaperList = getWallpapersList(screenName)
if (wallpaperList.length > 0) {
var randomIndex = Math.floor(Math.random() * wallpaperList.length)
var randomPath = wallpaperList[randomIndex]
changeWallpaper(screenName, randomPath)
}
}
}
else {
// Pick a random wallpaper for all screens
// We can use any screenName here, so we just pick the primary one.
var wallpaperList = getWallpapersList(Screen.name)
if (wallpaperList.length > 0) { if (wallpaperList.length > 0) {
var randomIndex = Math.floor(Math.random() * wallpaperList.length) var randomIndex = Math.floor(Math.random() * wallpaperList.length)
var randomPath = wallpaperList[randomIndex] var randomPath = wallpaperList[randomIndex]
setWallpaper(screenName, randomPath) changeWallpaper(undefined, randomPath)
} }
} }
} }
@ -165,11 +179,9 @@ Singleton {
// ------------------------------------------------------------------- // -------------------------------------------------------------------
function toggleRandomWallpaper() { function toggleRandomWallpaper() {
Logger.log("Wallpaper", "toggleRandomWallpaper") Logger.log("Wallpaper", "toggleRandomWallpaper")
if (Settings.data.wallpaper.randomEnabled && !randomWallpaperTimer.running) { if (Settings.data.wallpaper.randomEnabled) {
randomWallpaperTimer.start() randomWallpaperTimer.restart()
setRandomWallpaper() setRandomWallpaper()
} else if (!Settings.data.wallpaper.randomEnabled && randomWallpaperTimer.running) {
randomWallpaperTimer.stop()
} }
} }
@ -211,7 +223,7 @@ Singleton {
Timer { Timer {
id: randomWallpaperTimer id: randomWallpaperTimer
interval: Settings.data.wallpaper.randomIntervalSec * 1000 interval: Settings.data.wallpaper.randomIntervalSec * 1000
running: false running: Settings.data.wallpaper.randomEnabled
repeat: true repeat: true
onTriggered: setRandomWallpaper() onTriggered: setRandomWallpaper()
triggeredOnStart: false triggeredOnStart: false