diff options
| author | nippy <you@example.com> | 2026-04-18 13:49:56 +0200 |
|---|---|---|
| committer | nippy <you@example.com> | 2026-04-18 13:49:56 +0200 |
| commit | 5d94c0a7d44a2255b81815a52a7056a94a39842d (patch) | |
| tree | 759bdea9645c6a62f9e1e4c001f7d81cccd120d2 /raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/PLUGINS/WallpaperWatcherDaemon | |
| parent | e79cdf210b267f21a186255ce1a4d50029439d54 (diff) | |
| download | RaveOS-PKGBUILD-5d94c0a7d44a2255b81815a52a7056a94a39842d.tar.gz RaveOS-PKGBUILD-5d94c0a7d44a2255b81815a52a7056a94a39842d.zip | |
update Raveos themes
Diffstat (limited to 'raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/PLUGINS/WallpaperWatcherDaemon')
4 files changed, 143 insertions, 0 deletions
diff --git a/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/PLUGINS/WallpaperWatcherDaemon/README.md b/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/PLUGINS/WallpaperWatcherDaemon/README.md new file mode 100644 index 0000000..159b58d --- /dev/null +++ b/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/PLUGINS/WallpaperWatcherDaemon/README.md @@ -0,0 +1,37 @@ +# Wallpaper Watcher Daemon + +Run a script whenever your wallpaper changes. + +## What it does + +This daemon monitors wallpaper changes and executes a script you specify. The new wallpaper path gets passed as the first argument to your script. + +## Setup + +1. Enable the plugin in Settings → Plugins +2. Configure the script path in the plugin settings +3. Make sure your script is executable (`chmod +x /path/to/script.sh`) + +## Example script + +```bash +#!/bin/bash +echo "New wallpaper: $1" +# Do something with the wallpaper path +``` + +Save this to a file, make it executable, and point the plugin to it. + +## Use cases + +- Generate color schemes from the new wallpaper +- Update theme files based on wallpaper colors +- Send notifications when wallpaper changes +- Sync wallpaper info to other devices +- Log wallpaper history + +## Notes + +- Script errors show up as toast notifications +- Script output goes to console logs +- The daemon runs invisibly in the background diff --git a/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/PLUGINS/WallpaperWatcherDaemon/WallpaperWatcherDaemon.qml b/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/PLUGINS/WallpaperWatcherDaemon/WallpaperWatcherDaemon.qml new file mode 100644 index 0000000..ffed6c1 --- /dev/null +++ b/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/PLUGINS/WallpaperWatcherDaemon/WallpaperWatcherDaemon.qml @@ -0,0 +1,66 @@ +import QtQuick +import Quickshell +import Quickshell.Io +import qs.Common +import qs.Services +import qs.Modules.Plugins + +PluginComponent { + id: root + + property string scriptPath: pluginData.scriptPath || "" + property var popoutService: null + + Connections { + target: SessionData + function onWallpaperPathChanged() { + if (scriptPath) { + var scriptProcess = scriptProcessComponent.createObject(root, { + wallpaperPath: SessionData.wallpaperPath + }) + scriptProcess.running = true + } + } + } + + Component { + id: scriptProcessComponent + + Process { + property string wallpaperPath: "" + + command: [scriptPath, wallpaperPath] + + stdout: StdioCollector { + onStreamFinished: { + if (text.trim()) { + console.log("WallpaperWatcherDaemon script output:", text.trim()) + } + } + } + + stderr: StdioCollector { + onStreamFinished: { + if (text.trim()) { + ToastService.showError("Wallpaper Change Script Error", text.trim()) + } + } + } + + onExited: (exitCode) => { + if (exitCode !== 0) { + ToastService.showError("Wallpaper Change Script Error", "Script exited with code: " + exitCode) + } + destroy() + } + } + } + + Component.onCompleted: { + console.info("WallpaperWatcherDaemon: Started monitoring wallpaper changes") + } + + Component.onDestruction: { + console.info("WallpaperWatcherDaemon: Stopped monitoring wallpaper changes") + } +} diff --git a/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/PLUGINS/WallpaperWatcherDaemon/WallpaperWatcherSettings.qml b/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/PLUGINS/WallpaperWatcherDaemon/WallpaperWatcherSettings.qml new file mode 100644 index 0000000..5f8c2c0 --- /dev/null +++ b/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/PLUGINS/WallpaperWatcherDaemon/WallpaperWatcherSettings.qml @@ -0,0 +1,24 @@ +import QtQuick +import qs.Common +import qs.Widgets +import qs.Modules.Plugins + +PluginSettings { + id: root + pluginId: "wallpaperWatcherDaemon" + + StyledText { + text: "Wallpaper Change Hook" + font.pixelSize: Theme.fontSizeLarge + font.weight: Font.Bold + color: Theme.surfaceText + } + + StringSetting { + settingKey: "scriptPath" + label: "Script Path" + description: "Path to a script that will be executed when the wallpaper changes. The new wallpaper path will be passed as the first argument." + placeholder: "/path/to/your/script.sh" + defaultValue: "" + } +} diff --git a/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/PLUGINS/WallpaperWatcherDaemon/plugin.json b/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/PLUGINS/WallpaperWatcherDaemon/plugin.json new file mode 100644 index 0000000..6e08395 --- /dev/null +++ b/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/PLUGINS/WallpaperWatcherDaemon/plugin.json @@ -0,0 +1,16 @@ +{ + "id": "wallpaperWatcherDaemon", + "name": "Wallpaper Watcher Daemon", + "description": "Background daemon that monitors wallpaper changes and logs them", + "version": "1.0.0", + "author": "DankMaterialShell", + "type": "daemon", + "capabilities": ["wallpaper", "monitoring"], + "component": "./WallpaperWatcherDaemon.qml", + "icon": "wallpaper", + "settings": "./WallpaperWatcherSettings.qml", + "permissions": [ + "settings_read", + "settings_write" + ] +} |