From 017a5a6f9188136055b8e55d9ec5a30d69544a86 Mon Sep 17 00:00:00 2001 From: ItsLemmy Date: Sat, 29 Nov 2025 18:01:33 -0500 Subject: [PATCH] Matugen: improved wallpaper filepath escaping to ensure it works well with potential non standard characters. --- Services/Theming/TemplateProcessor.qml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Services/Theming/TemplateProcessor.qml b/Services/Theming/TemplateProcessor.qml index 3afddf0a..2e06d145 100644 --- a/Services/Theming/TemplateProcessor.qml +++ b/Services/Theming/TemplateProcessor.qml @@ -176,10 +176,13 @@ Singleton { function buildMatugenScript(content, wallpaper, mode) { const delimiter = "MATUGEN_CONFIG_EOF_" + Math.random().toString(36).substr(2, 9); const pathEsc = dynamicConfigPath.replace(/'/g, "'\\''"); + const wpDelimiter = "WALLPAPER_PATH_EOF_" + Math.random().toString(36).substr(2, 9); + // Use heredoc for wallpaper path to avoid all escaping issues let script = `cat > '${pathEsc}' << '${delimiter}'\n${content}\n${delimiter}\n`; - script += `matugen image '${wallpaper}' --config '${pathEsc}' --mode ${mode} --type ${Settings.data.colorSchemes.matugenSchemeType}`; - script += buildUserTemplateCommand(wallpaper, mode); + script += `NOCTALIA_WP_PATH=$(cat << '${wpDelimiter}'\n${wallpaper}\n${wpDelimiter}\n)\n`; + script += `matugen image "$NOCTALIA_WP_PATH" --config '${pathEsc}' --mode ${mode} --type ${Settings.data.colorSchemes.matugenSchemeType}`; + script += buildUserTemplateCommand("$NOCTALIA_WP_PATH", mode); return script + "\n"; }