1
0
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:
bbedward
2025-11-12 17:18:45 -05:00
parent 6013c994a6
commit 24e800501a
768 changed files with 76284 additions and 221 deletions

View 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

View File

@@ -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")
}
}

View File

@@ -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: ""
}
}

View 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"
]
}