add switching random wallpaper every 60 seconds and base for matugen

This commit is contained in:
Sem
2026-03-29 22:36:31 +02:00
parent 53bdb29c8c
commit 06477003e0
4 changed files with 88 additions and 32 deletions

View File

@@ -0,0 +1,57 @@
import Quickshell
import Quickshell.Io
import QtQuick
Item {
id: wallpaperHolder
// Store all wallpapers
property var wallpapers: []
property string wallpaperDir: Qt.resolvedUrl("file:///home/sem/Pictures/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];
console.log("wallpaper set to " + path);
wallpaperProcess.command = ["awww", "img", path, "--transition-type", "grow", "--transition-fps", "60", "--transition-duration", "0.6"];
wallpaperProcess.running = true;
}
Timer {
interval: 60000
running: true
repeat: true
onTriggered: wallpaperHolder.setRandomWallpaper()
}
Component.onCompleted: {
loadWallpapers.running = true; // start loading wallpapers
}
}

View File

@@ -5,6 +5,8 @@ import Quickshell.Io
import QtQuick
import QtQuick.Layouts
import "."
// qmllint disable uncreatable-type
PanelWindow {
id: root
@@ -18,6 +20,8 @@ PanelWindow {
property var lastCpuIdle: 0
property var lastCpuTotal: 0
RandomWallpaper {}
Process {
id: cpuProc
// get cpu usage, first line of /proc/stat
@@ -25,7 +29,6 @@ PanelWindow {
stdout: StdioCollector {
onStreamFinished: {
var line = this.text.split(/\r?\n/)[1].split(" ");
console.log("the line is " + line);
var user = parseInt(line[1]);
var nice = parseInt(line[2]);
@@ -45,8 +48,6 @@ PanelWindow {
root.cpuUsage = Math.round(100 * (1 - diffIdle / diffTotal));
}
console.log("diffTotal is " + diffTotal);
root.lastCpuIdle = idleAll;
root.lastCpuTotal = total;
}