From 40e06ed1f80f969640f543e8752e30989b401ec4 Mon Sep 17 00:00:00 2001 From: Lemmy Date: Fri, 13 Mar 2026 10:11:54 -0400 Subject: [PATCH] feat(hooks): added a 3rd argument to the wallpapper changed hook (light/dark) --- Assets/Translations/en.json | 2 +- Modules/Panels/Settings/Tabs/Hooks/HooksListSubTab.qml | 2 +- Services/Control/HooksService.qml | 2 ++ 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Assets/Translations/en.json b/Assets/Translations/en.json index 5c83e6d29..d7f1923a1 100644 --- a/Assets/Translations/en.json +++ b/Assets/Translations/en.json @@ -1220,7 +1220,7 @@ }, "hooks": { "info-command-info-description": "• Commands are executed via shell (sh -lc)
• Commands run in background (detached)
• Test buttons execute with current values", - "info-parameters-description": "• Wallpaper hook: $1 = wallpaper path, $2 = screen name
• Theme toggle hook: $1 = true/false (Dark Mode state)
• Screen lock/unlock hooks: $1 = lock/unlock (screen lock state)
• Performance mode hooks: No parameters
• Session hook: $1 = action (shutdown/reboot)", + "info-parameters-description": "• Wallpaper hook: $1 = wallpaper path, $2 = screen name, $3 = theme (dark/light)
• Theme toggle hook: $1 = true/false (Dark Mode state)
• Screen lock/unlock hooks: $1 = lock/unlock (screen lock state)
• Performance mode hooks: No parameters
• Session hook: $1 = action (shutdown/reboot)", "info-parameters-label": "Available parameters", "noctalia-started-description": "Command to execute when Noctalia has finished loading.", "noctalia-started-label": "Noctalia started", diff --git a/Modules/Panels/Settings/Tabs/Hooks/HooksListSubTab.qml b/Modules/Panels/Settings/Tabs/Hooks/HooksListSubTab.qml index 2e7d4196f..3540c598d 100644 --- a/Modules/Panels/Settings/Tabs/Hooks/HooksListSubTab.qml +++ b/Modules/Panels/Settings/Tabs/Hooks/HooksListSubTab.qml @@ -68,7 +68,7 @@ ColumnLayout { Settings.saveImmediate(); }, val => { if (val) - Quickshell.execDetached(["sh", "-lc", val.replace("$1", "test_wallpaper_path").replace("$2", "test_screen")]); + Quickshell.execDetached(["sh", "-lc", val.replace("$1", "test_wallpaper_path").replace("$2", "test_screen").replace("$3", "dark")]); }) } diff --git a/Services/Control/HooksService.qml b/Services/Control/HooksService.qml index 872662a84..d179d7b9c 100644 --- a/Services/Control/HooksService.qml +++ b/Services/Control/HooksService.qml @@ -118,8 +118,10 @@ Singleton { } try { + const theme = Settings.data.colorSchemes.darkMode ? "dark" : "light"; let command = script.replace(/\$1/g, wallpaperPath); command = command.replace(/\$2/g, screenName || ""); + command = command.replace(/\$3/g, theme); Quickshell.execDetached(["sh", "-lc", command]); Logger.d("HooksService", `Executed wallpaper hook: ${command}`); } catch (e) {