mirror of
https://github.com/AvengeMedia/DankMaterialShell.git
synced 2026-01-24 21:42:51 -05:00
switch hto monorepo structure
This commit is contained in:
37
quickshell/PLUGINS/WallpaperWatcherDaemon/README.md
Normal file
37
quickshell/PLUGINS/WallpaperWatcherDaemon/README.md
Normal file
@@ -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
|
||||
@@ -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")
|
||||
}
|
||||
}
|
||||
@@ -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: ""
|
||||
}
|
||||
}
|
||||
16
quickshell/PLUGINS/WallpaperWatcherDaemon/plugin.json
Normal file
16
quickshell/PLUGINS/WallpaperWatcherDaemon/plugin.json
Normal file
@@ -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"
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user