55 lines
1.3 KiB
QML
55 lines
1.3 KiB
QML
import Quickshell.Io
|
|
import QtQuick
|
|
|
|
Item {
|
|
id: wallpaperHolder
|
|
|
|
// Store all wallpapers
|
|
property var wallpapers: []
|
|
|
|
// process to run the command to change the wallpaper
|
|
Process {
|
|
id: wallpaperProcess
|
|
}
|
|
|
|
// Load wallpaper list once at startup
|
|
Process {
|
|
id: loadWallpapers
|
|
command: ["bash", "-c", "find ~/Pictures/wallpapers -type f"]
|
|
|
|
stdout: StdioCollector {
|
|
onStreamFinished: {
|
|
console.log("wallpapers loaded!");
|
|
wallpaperHolder.wallpapers = this.text.trim().split("\n");
|
|
wallpaperHolder.setRandomWallpaper();
|
|
}
|
|
}
|
|
}
|
|
|
|
function setRandomWallpaper() {
|
|
if (wallpapers.length === 0) {
|
|
console.log("No wallpapers found");
|
|
return;
|
|
}
|
|
|
|
var index = Math.floor(Math.random() * wallpapers.length);
|
|
var path = wallpapers[index];
|
|
|
|
wallpaperProcess.command = ["matugen", "image", path]
|
|
console.log("Running command: " + wallpaperProcess.command);
|
|
|
|
wallpaperProcess.running = true;
|
|
}
|
|
|
|
Timer {
|
|
interval: 60000 * 15 // every 15 minutes
|
|
running: true
|
|
repeat: true
|
|
onTriggered: wallpaperHolder.setRandomWallpaper()
|
|
}
|
|
|
|
Component.onCompleted: {
|
|
loadWallpapers.running = true; // start loading wallpapers
|
|
}
|
|
}
|