From 63a08d3dc4110ae4f8146881f5ea018742864670 Mon Sep 17 00:00:00 2001 From: Luis Bocanegra Date: Wed, 2 Oct 2024 16:24:03 -0600 Subject: [PATCH] feat: Built-in presets support Added Transparent theme --- package/contents/ui/code/utils.js | 8 + package/contents/ui/components/Header.qml | 8 +- package/contents/ui/configPresetAutoload.qml | 32 +++- package/contents/ui/configPresets.qml | 163 +++++++++++------- package/contents/ui/main.qml | 14 +- .../ui/presets/Transparent/preview.png | Bin 0 -> 30306 bytes .../ui/presets/Transparent/settings.json | 1 + 7 files changed, 146 insertions(+), 80 deletions(-) create mode 100644 package/contents/ui/presets/Transparent/preview.png create mode 100644 package/contents/ui/presets/Transparent/settings.json diff --git a/package/contents/ui/code/utils.js b/package/contents/ui/code/utils.js index 0b7d952..c0847c8 100644 --- a/package/contents/ui/code/utils.js +++ b/package/contents/ui/code/utils.js @@ -380,3 +380,11 @@ function getUnifyBgType(itemTypes, index) { return 0; // Default color } } + +// https://github.com/rbn42/panon/blob/stable/plasmoid/contents/ui/utils.js +function getWidgetRootDir() { + var path = plasmoid.metaData.fileName + path = path.split('/') + path[path.length - 1] = 'contents/' + return path.join('/') +} diff --git a/package/contents/ui/components/Header.qml b/package/contents/ui/components/Header.qml index 776eb94..282359f 100644 --- a/package/contents/ui/components/Header.qml +++ b/package/contents/ui/components/Header.qml @@ -8,6 +8,12 @@ import org.kde.kirigami as Kirigami RowLayout { id: root property alias isEnabled: isEnabledCheckbox.checked + property string lastPresetDir: plasmoid.configuration.lastPreset + property string lastPresetName: { + let name = lastPresetDir.split("/") + return name[name.length-1] || "None" + } + RowLayout { Layout.alignment: Qt.AlignRight Label { @@ -35,7 +41,7 @@ RowLayout { text: i18n("Last preset loaded:") } Label { - text: plasmoid.configuration.lastPreset || "None" + text: lastPresetName font.weight: Font.DemiBold } } diff --git a/package/contents/ui/configPresetAutoload.qml b/package/contents/ui/configPresetAutoload.qml index 9cfbfba..1b7031a 100644 --- a/package/contents/ui/configPresetAutoload.qml +++ b/package/contents/ui/configPresetAutoload.qml @@ -7,6 +7,7 @@ import org.kde.kirigami as Kirigami import org.kde.plasma.plasmoid import org.kde.plasma.plasma5support as P5Support import "components" as Components +import "code/utils.js" as Utils KCM.SimpleKCM { id:root @@ -14,7 +15,11 @@ KCM.SimpleKCM { property string presetsDir: StandardPaths.writableLocation( StandardPaths.HomeLocation).toString().substring(7) + "/.config/panel-colorizer/presets" property string cratePresetsDirCmd: "mkdir -p " + presetsDir - property string listPresetsCmd: "find "+presetsDir+" -mindepth 1 -prune -type d -print0 | while IFS= read -r -d '' preset; do basename \"$preset\"; done | sort" + property string presetsBuiltinDir: Utils.getWidgetRootDir()+"ui/presets/" + + property string listUserPresetsCmd: "find "+presetsDir+" -mindepth 1 -prune -type d -print0 | while IFS= read -r -d '' preset; do echo u:\"$preset\"; done | sort" + property string listBuiltinPresetsCmd: "find "+presetsBuiltinDir+" -mindepth 1 -prune -type d -print0 | while IFS= read -r -d '' preset; do echo b:\"$preset\"; done | sort" + property string listPresetsCmd: listBuiltinPresetsCmd+";"+listUserPresetsCmd property string cfg_presetAutoloading property var autoLoadConfig: JSON.parse(cfg_presetAutoloading) @@ -37,22 +42,31 @@ KCM.SimpleKCM { // console.log(cmd); if (exitCode!==0) return // console.log(stdout); - var presets = [] if(cmd === listPresetsCmd) { - if (stdout.length < 1) return + if (stdout.length === 0) return presetsModel.append( { "name": i18n("Do nothing"), - "value": "" + "value": "", } ) - presets = stdout.trim().split("\n") - for (let i = 0; i < presets.length; i++) { - presets[i] + + const out = stdout.trim().split("\n") + for (const line of out) { + let builtin = false + const parts = line.split(":") + const path = parts[parts.length -1] + let name = path.split("/") + name = name[name.length-1] + const dir = parts[1] + if (line.startsWith("b:")) { + builtin = true + } + console.error(dir) presetsModel.append( { - "name": presets[i], - "value": presets[i], + "name": name, + "value": dir, } ) } diff --git a/package/contents/ui/configPresets.qml b/package/contents/ui/configPresets.qml index 920b47a..f6dc67a 100644 --- a/package/contents/ui/configPresets.qml +++ b/package/contents/ui/configPresets.qml @@ -15,10 +15,14 @@ KCM.SimpleKCM { id:root property string presetsDir: StandardPaths.writableLocation( StandardPaths.HomeLocation).toString().substring(7) + "/.config/panel-colorizer/presets/" - property string cratePresetsDirCmd: "mkdir -p " + presetsDir - property string listPresetsCmd: "find "+presetsDir+" -mindepth 1 -prune -type d -print0 | while IFS= read -r -d '' preset; do basename \"$preset\"; done | sort" + property string cratePresetsDirCmd: "mkdir -p '" + presetsDir + "'" + property string presetsBuiltinDir: Utils.getWidgetRootDir()+"ui/presets/" + + property string listUserPresetsCmd: "find "+presetsDir+" -mindepth 1 -prune -type d -print0 | while IFS= read -r -d '' preset; do echo u:\"$preset\"; done | sort" + property string listBuiltinPresetsCmd: "find "+presetsBuiltinDir+" -mindepth 1 -prune -type d -print0 | while IFS= read -r -d '' preset; do echo b:\"$preset\"; done | sort" + property string listPresetsCmd: listBuiltinPresetsCmd+";"+listUserPresetsCmd property string spectaclePreviewCmd: "spectacle -bn -r -o " - property var presets: [] + property var presets: ({}) property var presetContent: "" property string editingPreset @@ -30,7 +34,8 @@ KCM.SimpleKCM { Connections { target: plasmoid.configuration onValueChanged: { - cfg_lastPreset = lastPreset + plasmoid.configuration.lastPreset = lastPreset + plasmoid.configuration.writeConfig(); } } @@ -45,11 +50,23 @@ KCM.SimpleKCM { function onExited(cmd, exitCode, exitStatus, stdout, stderr) { if (exitCode!==0) return if(cmd === listPresetsCmd) { - if (stdout.length > 0) { - presets = stdout.trim().split("\n") - } else { - presets = [] + presets = ({}) + if (stdout.length === 0) return + const out = stdout.trim().split("\n") + var tmp = {} + for (const line of out) { + let builtin = false + const parts = line.split(":") + const path = parts[parts.length -1] + let name = path.split("/") + name = name[name.length-1] + if (line.startsWith("b:")) { + builtin = true + } + console.error(parts[1]) + tmp[name] = {"dir": parts[1], "builtin": builtin} } + presets = tmp } if (cmd.startsWith("cat")) { presetContent = JSON.parse(stdout.trim()) @@ -58,10 +75,12 @@ KCM.SimpleKCM { if (cmd.startsWith("spectacle")) { refreshImage(editingPreset) } + if (cmd.startsWith("echo")) { + root.runCommand.run(listPresetsCmd) + } } } - Kirigami.PromptDialog { id: deletePresetDialog title: "Delete preset '"+editingPreset+"?" @@ -87,7 +106,6 @@ KCM.SimpleKCM { Kirigami.PromptDialog { id: newPresetDialog title: "Create preset '"+editingPreset+"'?" - subtitle: i18n("Any existing preset with the same name will be overwritten!") standardButtons: Kirigami.Dialog.Ok | Kirigami.Dialog.Cancel onAccepted: { savePreset(editingPreset) @@ -96,9 +114,9 @@ KCM.SimpleKCM { } } - function applyPreset(presetName) { - console.log("Reading preset:", presetName, presetsDir + presetName); - runCommand.run("cat '" + presetsDir + presetName+"/settings.json'") + function applyPreset(presetDir) { + console.log("Reading preset:", presetDir); + runCommand.run("cat '" + presetDir + "/settings.json'") } function restoreSettings() { @@ -106,8 +124,8 @@ KCM.SimpleKCM { cfg_globalSettings = JSON.stringify(Globals.defaultConfig, null, null) } - function savePreset(presetName) { - console.log("Saving preset ", presetName); + function savePreset(presetDir) { + console.log("Saving preset ", presetDir); var config = plasmoid.configuration var output = {} for (var key of Object.keys(config)) { @@ -127,17 +145,21 @@ KCM.SimpleKCM { output[name] = parsed } } - runCommand.run(cratePresetsDirCmd+presetName) - runCommand.run("echo '" + JSON.stringify(output) + "' > '" + presetsDir + presetName + "/settings.json'") - runCommand.run(spectaclePreviewCmd+"'" + presetsDir + presetName + "/preview.png'") + runCommand.run("mkdir -p '"+presetDir+"'") + runCommand.run("echo '" + JSON.stringify(output) + "' > '" + presetDir + "/settings.json'") + runCommand.run(spectaclePreviewCmd+"'" + presetDir + "/preview.png'") } - function deletePreset(presetName) { - if (!presetsDir.includes("panel-colorizer/presets/")) { - console.error("Unsafe deletion, aborting.") + function deletePreset(path) { + if (!path.includes("panel-colorizer/presets/") + || path.includes("/ ") || path.includes(" /") || path.endsWith(" ") + || path.includes("..") + ) { + console.error(`Detected unsafe deletion of '${path}' aborting.`) + return } - console.error("rm -r '" + presetsDir + presetName + "'" ) - runCommand.run("rm -r '" + presetsDir + presetName + "'" ) + console.error("rm -r '" + path + "'" ) + runCommand.run("rm -r '" + path + "'" ) } Component.onCompleted: { @@ -183,9 +205,9 @@ KCM.SimpleKCM { Button { icon.name: "document-save-symbolic" text: i18n("Save") - enabled: saveNameField.acceptableInput + enabled: saveNameField.acceptableInput && !(Object.keys(presets).includes(saveNameField.text)) onClicked: { - editingPreset = saveNameField.text + editingPreset = presetsDir+saveNameField.text newPresetDialog.open() } } @@ -206,7 +228,7 @@ KCM.SimpleKCM { } } Repeater { - model: presets + model: Object.keys(presets) delegate: Kirigami.AbstractCard { contentItem: ColumnLayout { RowLayout { @@ -214,12 +236,29 @@ KCM.SimpleKCM { text: (parseInt(index)+1).toString()+"." font.bold: true } - ColumnLayout { + Label { + text: modelData + elide: Text.ElideRight + } + + Rectangle { + visible: presets[modelData].builtin + color: Kirigami.Theme.highlightColor + Kirigami.Theme.colorSet: root.Kirigami.Theme["Selection"] + radius: parent.height / 2 + width: label.width + 12 + height: label.height + 2 + Kirigami.Theme.inherit: false Label { - text: modelData - elide: Text.ElideRight + anchors.centerIn: parent + id: label + text: i18n("Built-in") + color: Kirigami.Theme.textColor + Kirigami.Theme.colorSet: root.Kirigami.Theme["Selection"] + Kirigami.Theme.inherit: false } } + Item { Layout.fillWidth: true } @@ -229,7 +268,7 @@ KCM.SimpleKCM { text: i18n("Load") Layout.preferredHeight: saveBtn.height onClicked: { - lastPreset = modelData + lastPreset = presets[modelData].dir applyPreset(lastPreset) } } @@ -238,51 +277,48 @@ KCM.SimpleKCM { icon.name: "document-save-symbolic" text: i18n("Update") onClicked: { - editingPreset = modelData + editingPreset = presets[modelData].dir updatePresetDialog.open() } + visible: !presets[modelData].builtin } Button { text: i18n("Delete") icon.name: "edit-delete-remove-symbolic" onClicked: { - editingPreset = modelData + editingPreset = presets[modelData].dir onClicked: deletePresetDialog.open() } + visible: !presets[modelData].builtin } } - RowLayout { - Rectangle { - color: "transparent" - // width: scrollView.width - // height: scrollView.height - border { - width: 1 - color: Qt.rgba(0.5,0.5,0.5, 0.3) + + ScrollView { + Layout.preferredWidth: 500 + Layout.maximumHeight: 100 + id: scrollView + visible: false + Image { + id: image + onStatusChanged: if (image.status == Image.Ready) { + scrollView.visible = true + scrollView.height = sourceSize.height + } else { + scrollView.visible = false } - Layout.preferredWidth: 500 - Layout.preferredHeight: 100 - ScrollView { - id: scrollView - width: parent.width-2 - height: parent.height-2 - anchors.centerIn: parent - Image { - source: presetsDir+modelData+"/preview.png" - fillMode: Image.PreserveAspectCrop - horizontalAlignment: Image.AlignLeft - cache: false - asynchronous: true - function refresh(presetName) { - // only refresh preview of the changed preset - if (presetName !== modelData) return - source = "" - source = presetsDir+modelData+"/preview.png" - } - Component.onCompleted: { - root.refreshImage.connect(refresh) - } - } + source: presets[modelData].dir+"/preview.png" + fillMode: Image.PreserveAspectCrop + horizontalAlignment: Image.AlignLeft + cache: false + asynchronous: true + function refresh(presetName) { + // only refresh preview of the changed preset + if (presetName !== presets[modelData].dir) return + source = "" + source = presets[modelData].dir+"/preview.png" + } + Component.onCompleted: { + root.refreshImage.connect(refresh) } } } @@ -293,3 +329,4 @@ KCM.SimpleKCM { } } } + diff --git a/package/contents/ui/main.qml b/package/contents/ui/main.qml index a2c7f0a..ab323fb 100644 --- a/package/contents/ui/main.qml +++ b/package/contents/ui/main.qml @@ -1123,15 +1123,15 @@ PlasmoidItem { } function switchPreset() { - let nextPreset = Utils.getPresetName(panelState, presetAutoloading) - if (!nextPreset) return - applyPreset(nextPreset) + let nextPresetDir = Utils.getPresetName(panelState, presetAutoloading) + if (!nextPresetDir) return + applyPreset(nextPresetDir) } - function applyPreset(presetName) { - console.log("Reading preset:", presetName); - lastPreset = presetName - runCommand.run("cat '" + presetsDir + presetName+"/settings.json'") + function applyPreset(presetDir) { + console.log("Reading preset:", presetDir); + lastPreset = presetDir + runCommand.run("cat '" + presetDir + "/settings.json'") } onPanelStateChanged: { diff --git a/package/contents/ui/presets/Transparent/preview.png b/package/contents/ui/presets/Transparent/preview.png new file mode 100644 index 0000000000000000000000000000000000000000..86d52451dab1dfddfd7824cda31c4d272203375f GIT binary patch literal 30306 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 FV1oSh-m?Gz literal 0 HcmV?d00001 diff --git a/package/contents/ui/presets/Transparent/settings.json b/package/contents/ui/presets/Transparent/settings.json new file mode 100644 index 0000000..bbfd904 --- /dev/null +++ b/package/contents/ui/presets/Transparent/settings.json @@ -0,0 +1 @@ +{"globalSettings":{"panel":{"enabled":true,"blurBehind":false,"backgroundColor":{"enabled":false,"lightnessValue":0.5,"saturationValue":0.5,"alpha":1,"systemColor":"backgroundColor","systemColorSet":"View","custom":"#013eff","list":["#ED8796","#A6DA95","#EED49F","#8AADF4","#F5BDE6","#8BD5CA","#f5a97f"],"followColor":0,"saturationEnabled":false,"lightnessEnabled":false,"animation":{"enabled":false,"interval":3000,"smoothing":800},"sourceType":1},"foregroundColor":{"enabled":false,"lightnessValue":0.5,"saturationValue":0.5,"alpha":1,"systemColor":"highlightColor","systemColorSet":"View","custom":"#fc0000","list":["#ED8796","#A6DA95","#EED49F","#8AADF4","#F5BDE6","#8BD5CA","#f5a97f"],"followColor":0,"saturationEnabled":false,"lightnessEnabled":false,"animation":{"enabled":false,"interval":3000,"smoothing":800},"sourceType":1},"radius":{"enabled":false,"corner":{"topLeft":5,"topRight":5,"bottomRight":5,"bottomLeft":5}},"margin":{"enabled":false,"side":{"right":0,"left":0,"top":0,"bottom":0}},"padding":{"enabled":false,"side":{"right":0,"left":0,"top":0,"bottom":0}},"border":{"enabled":false,"customSides":false,"custom":{"widths":{"left":0,"bottom":3,"right":0,"top":0},"margin":{"enabled":false,"side":{"right":0,"left":0,"top":0,"bottom":0}},"radius":{"enabled":false,"corner":{"topLeft":5,"topRight":5,"bottomRight":5,"bottomLeft":5}}},"width":0,"color":{"lightnessValue":0.5,"saturationValue":0.5,"alpha":1,"systemColor":"highlightColor","systemColorSet":"View","custom":"#ff6c06","list":["#ED8796","#A6DA95","#EED49F","#8AADF4","#F5BDE6","#8BD5CA","#f5a97f"],"followColor":0,"saturationEnabled":false,"lightnessEnabled":false,"animation":{"enabled":false,"interval":3000,"smoothing":800},"sourceType":1,"enabled":true}},"shadow":{"background":{"enabled":false,"color":{"lightnessValue":0.5,"saturationValue":0.5,"alpha":1,"systemColor":"backgroundColor","systemColorSet":"View","custom":"#282828","list":["#ED8796","#A6DA95","#EED49F","#8AADF4","#F5BDE6","#8BD5CA","#f5a97f"],"followColor":0,"saturationEnabled":false,"lightnessEnabled":false,"animation":{"enabled":false,"interval":3000,"smoothing":800},"sourceType":1,"enabled":true},"size":5,"xOffset":0,"yOffset":0},"foreground":{"enabled":false,"color":{"lightnessValue":0.5,"saturationValue":0.5,"alpha":1,"systemColor":"backgroundColor","systemColorSet":"View","custom":"#282828","list":["#ED8796","#A6DA95","#EED49F","#8AADF4","#F5BDE6","#8BD5CA","#f5a97f"],"followColor":0,"saturationEnabled":false,"lightnessEnabled":false,"animation":{"enabled":false,"interval":3000,"smoothing":800},"sourceType":1,"enabled":true},"size":5,"xOffset":0,"yOffset":0}},"unfiedBackground":{"org.kde.plasma.digitalclock":0}},"widgets":{"enabled":true,"blurBehind":false,"backgroundColor":{"enabled":false,"lightnessValue":0.5,"saturationValue":0.5,"alpha":1,"systemColor":"backgroundColor","systemColorSet":"View","custom":"#013eff","list":["#ED8796","#A6DA95","#EED49F","#8AADF4","#F5BDE6","#8BD5CA","#f5a97f"],"followColor":0,"saturationEnabled":false,"lightnessEnabled":false,"animation":{"enabled":false,"interval":3000,"smoothing":800},"sourceType":1},"foregroundColor":{"enabled":false,"lightnessValue":0.5,"saturationValue":0.5,"alpha":1,"systemColor":"highlightColor","systemColorSet":"View","custom":"#fc0000","list":["#ED8796","#A6DA95","#EED49F","#8AADF4","#F5BDE6","#8BD5CA","#f5a97f"],"followColor":0,"saturationEnabled":false,"lightnessEnabled":false,"animation":{"enabled":false,"interval":3000,"smoothing":800},"sourceType":1},"radius":{"enabled":false,"corner":{"topLeft":5,"topRight":5,"bottomRight":5,"bottomLeft":5}},"margin":{"enabled":false,"side":{"right":0,"left":0,"top":0,"bottom":0}},"spacing":4,"border":{"enabled":false,"customSides":false,"custom":{"widths":{"left":0,"bottom":3,"right":0,"top":0},"margin":{"enabled":false,"side":{"right":0,"left":0,"top":0,"bottom":0}},"radius":{"enabled":false,"corner":{"topLeft":5,"topRight":5,"bottomRight":5,"bottomLeft":5}}},"width":0,"color":{"lightnessValue":0.5,"saturationValue":0.5,"alpha":1,"systemColor":"highlightColor","systemColorSet":"View","custom":"#ff6c06","list":["#ED8796","#A6DA95","#EED49F","#8AADF4","#F5BDE6","#8BD5CA","#f5a97f"],"followColor":0,"saturationEnabled":false,"lightnessEnabled":false,"animation":{"enabled":false,"interval":3000,"smoothing":800},"sourceType":1,"enabled":true}},"shadow":{"background":{"enabled":false,"color":{"lightnessValue":0.5,"saturationValue":0.5,"alpha":1,"systemColor":"backgroundColor","systemColorSet":"View","custom":"#282828","list":["#ED8796","#A6DA95","#EED49F","#8AADF4","#F5BDE6","#8BD5CA","#f5a97f"],"followColor":0,"saturationEnabled":false,"lightnessEnabled":false,"animation":{"enabled":false,"interval":3000,"smoothing":800},"sourceType":1,"enabled":true},"size":5,"xOffset":0,"yOffset":0},"foreground":{"enabled":true,"color":{"lightnessValue":0.5,"saturationValue":0.5,"alpha":1,"systemColor":"backgroundColor","systemColorSet":"View","custom":"#282828","list":["#ED8796","#A6DA95","#EED49F","#8AADF4","#F5BDE6","#8BD5CA","#f5a97f"],"followColor":0,"saturationEnabled":false,"lightnessEnabled":false,"animation":{"enabled":false,"interval":3000,"smoothing":800},"sourceType":1,"enabled":true},"size":5,"xOffset":0,"yOffset":0}},"unfiedBackground":{"org.kde.plasma.digitalclock":0}},"trayWidgets":{"enabled":false,"blurBehind":false,"backgroundColor":{"enabled":false,"lightnessValue":0.5,"saturationValue":0.5,"alpha":1,"systemColor":"backgroundColor","systemColorSet":"View","custom":"#013eff","list":["#ED8796","#A6DA95","#EED49F","#8AADF4","#F5BDE6","#8BD5CA","#f5a97f"],"followColor":0,"saturationEnabled":false,"lightnessEnabled":false,"animation":{"enabled":false,"interval":3000,"smoothing":800},"sourceType":1},"foregroundColor":{"enabled":false,"lightnessValue":0.5,"saturationValue":0.5,"alpha":1,"systemColor":"highlightColor","systemColorSet":"View","custom":"#fc0000","list":["#ED8796","#A6DA95","#EED49F","#8AADF4","#F5BDE6","#8BD5CA","#f5a97f"],"followColor":0,"saturationEnabled":false,"lightnessEnabled":false,"animation":{"enabled":false,"interval":3000,"smoothing":800},"sourceType":1},"radius":{"enabled":false,"corner":{"topLeft":5,"topRight":5,"bottomRight":5,"bottomLeft":5}},"margin":{"enabled":false,"side":{"right":0,"left":0,"top":0,"bottom":0}},"border":{"enabled":false,"customSides":false,"custom":{"widths":{"left":0,"bottom":3,"right":0,"top":0},"margin":{"enabled":false,"side":{"right":0,"left":0,"top":0,"bottom":0}},"radius":{"enabled":false,"corner":{"topLeft":5,"topRight":5,"bottomRight":5,"bottomLeft":5}}},"width":0,"color":{"lightnessValue":0.5,"saturationValue":0.5,"alpha":1,"systemColor":"highlightColor","systemColorSet":"View","custom":"#ff6c06","list":["#ED8796","#A6DA95","#EED49F","#8AADF4","#F5BDE6","#8BD5CA","#f5a97f"],"followColor":0,"saturationEnabled":false,"lightnessEnabled":false,"animation":{"enabled":false,"interval":3000,"smoothing":800},"sourceType":1,"enabled":true}},"shadow":{"background":{"enabled":false,"color":{"lightnessValue":0.5,"saturationValue":0.5,"alpha":1,"systemColor":"backgroundColor","systemColorSet":"View","custom":"#282828","list":["#ED8796","#A6DA95","#EED49F","#8AADF4","#F5BDE6","#8BD5CA","#f5a97f"],"followColor":0,"saturationEnabled":false,"lightnessEnabled":false,"animation":{"enabled":false,"interval":3000,"smoothing":800},"sourceType":1,"enabled":true},"size":5,"xOffset":0,"yOffset":0},"foreground":{"enabled":false,"color":{"lightnessValue":0.5,"saturationValue":0.5,"alpha":1,"systemColor":"backgroundColor","systemColorSet":"View","custom":"#282828","list":["#ED8796","#A6DA95","#EED49F","#8AADF4","#F5BDE6","#8BD5CA","#f5a97f"],"followColor":0,"saturationEnabled":false,"lightnessEnabled":false,"animation":{"enabled":false,"interval":3000,"smoothing":800},"sourceType":1,"enabled":true},"size":5,"xOffset":0,"yOffset":0}},"unfiedBackground":{"org.kde.plasma.digitalclock":0}},"nativePanelBackground":{"enabled":false,"opacity":"0.00"},"forceForegroundColor":{"widgets":{"com.github.antroids.application-title-bar":{"method":{"mask":false,"multiEffect":false},"reload":true},"org.kde.plasma.appmenu":{"method":{"mask":false,"multiEffect":false},"reload":true}},"reloadInterval":250},"stockPanelSettings":{"position":3,"alignment":2,"width":2,"visibility":3,"opacity":2,"floating":false},"configurationOverrides":{},"overrideAssociations":{},"unifiedBackground":{}},"configurationOverrides":{"overrides":{},"associations":{"org.kde.plasma.kickoff":"","luisbocanegra.panel.colorizer":"","org.kde.plasma.digitalclock":"","org.kde.plasma.systemtray":"","org.kde.netspeedWidget":"","spotify-client":"","luisbocanegra.panelspacer.extended":""}},"forceForegroundColor":{"widgets":{"com.github.antroids.application-title-bar":{"method":{"mask":false,"multiEffect":false},"reload":true},"org.kde.plasma.appmenu":{"method":{"mask":false,"multiEffect":false},"reload":true},"org.kde.plasma.battery":{"method":{"mask":true,"multiEffect":false},"reload":false}},"reloadInterval":500}}