From 529ad588c60df712bb510b162eb82beb9301b1a4 Mon Sep 17 00:00:00 2001 From: Lemmy Date: Thu, 2 Apr 2026 10:51:26 -0400 Subject: [PATCH] fix(settings): dont rely on Qt.btoa to generate default settings dump. --- Assets/settings-default.json | 2 +- Assets/settings-widgets-default.json | 2 +- Commons/Settings.qml | 7 ++----- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/Assets/settings-default.json b/Assets/settings-default.json index 213f2fd16..262d6a760 100644 --- a/Assets/settings-default.json +++ b/Assets/settings-default.json @@ -560,4 +560,4 @@ "gridSnapScale": false, "monitorWidgets": [] } -} \ No newline at end of file +} diff --git a/Assets/settings-widgets-default.json b/Assets/settings-widgets-default.json index 9503ed6cc..df518b5e5 100644 --- a/Assets/settings-widgets-default.json +++ b/Assets/settings-widgets-default.json @@ -292,4 +292,4 @@ "colorName": "primary" } } -} \ No newline at end of file +} diff --git a/Commons/Settings.qml b/Commons/Settings.qml index eb5b3159d..da1a4fb92 100644 --- a/Commons/Settings.qml +++ b/Commons/Settings.qml @@ -1068,9 +1068,7 @@ Singleton { var defaultPath = Quickshell.shellDir + "/Assets/settings-default.json"; - // Encode transfer it has base64 to avoid any escaping issue - var base64Data = Qt.btoa(jsonData); - Quickshell.execDetached(["sh", "-c", `echo "${base64Data}" | base64 -d > "${defaultPath}"`]); + Quickshell.execDetached(["sh", "-c", `cat > "${defaultPath}" << 'NOCTALIA_EOF'\n${jsonData}\nNOCTALIA_EOF`]); } catch (error) { Logger.e("Settings", "Failed to generate default settings file: " + error); } @@ -1091,8 +1089,7 @@ Singleton { var defaultPath = Quickshell.shellDir + "/Assets/settings-widgets-default.json"; - var base64Data = Qt.btoa(jsonData); - Quickshell.execDetached(["sh", "-c", `echo "${base64Data}" | base64 -d > "${defaultPath}"`]); + Quickshell.execDetached(["sh", "-c", `cat > "${defaultPath}" << 'NOCTALIA_EOF'\n${jsonData}\nNOCTALIA_EOF`]); } catch (error) { Logger.e("Settings", "Failed to generate widget default settings file: " + error); }