diff --git a/modules/launcher/Actions.qml b/modules/launcher/Actions.qml index 9f6f52c8..8df687bb 100644 --- a/modules/launcher/Actions.qml +++ b/modules/launcher/Actions.qml @@ -42,6 +42,7 @@ Singleton { name: qsTr("Transparency") desc: qsTr("Change shell transparency") icon: "opacity" + disabled: true function onClicked(list: AppList): void { root.autocomplete(list, "transparency"); diff --git a/modules/launcher/Content.qml b/modules/launcher/Content.qml index b6d10564..9e08a936 100644 --- a/modules/launcher/Content.qml +++ b/modules/launcher/Content.qml @@ -81,6 +81,8 @@ Item { const currentItem = list.currentList?.currentItem; if (currentItem) { if (list.showWallpapers) { + if (currentItem.modelData.path !== Wallpapers.actualCurrent) + Wallpapers.previewColourLock = true; Wallpapers.setWallpaper(currentItem.modelData.path); root.visibilities.launcher = false; } else if (text.startsWith(Config.launcher.actionPrefix)) { diff --git a/services/Colours.qml b/services/Colours.qml index 20fb6aaf..53ca90eb 100644 --- a/services/Colours.qml +++ b/services/Colours.qml @@ -12,7 +12,6 @@ Singleton { readonly property list colourNames: ["rosewater", "flamingo", "pink", "mauve", "red", "maroon", "peach", "yellow", "green", "teal", "sky", "sapphire", "blue", "lavender"] property bool showPreview - property bool endPreviewOnNextChange property bool light readonly property Colours palette: showPreview ? preview : current readonly property Colours current: Colours {} @@ -45,11 +44,6 @@ Singleton { if (colours.hasOwnProperty(propName)) colours[propName] = `#${colour}`; } - - if (!isPreview || (isPreview && endPreviewOnNextChange)) { - showPreview = false; - endPreviewOnNextChange = false; - } } function setMode(mode: string): void { diff --git a/services/Wallpapers.qml b/services/Wallpapers.qml index a667017c..fc965e55 100644 --- a/services/Wallpapers.qml +++ b/services/Wallpapers.qml @@ -18,6 +18,7 @@ Singleton { readonly property string current: showPreview ? previewPath : actualCurrent property string previewPath property string actualCurrent + property bool previewColourLock readonly property list preppedWalls: list.map(w => ({ name: Fuzzy.prepare(w.name), @@ -35,8 +36,7 @@ Singleton { function setWallpaper(path: string): void { actualCurrent = path; - setWall.path = path; - setWall.startDetached(); + Quickshell.execDetached(["caelestia", "wallpaper", "-f", path]); } function preview(path: string): void { @@ -47,7 +47,8 @@ Singleton { function stopPreview(): void { showPreview = false; - Colours.endPreviewOnNextChange = true; + if (!previewColourLock) + Colours.showPreview = false; } reloadableId: "wallpapers" @@ -72,7 +73,10 @@ Singleton { path: root.currentNamePath watchChanges: true onFileChanged: reload() - onLoaded: root.actualCurrent = text().trim() + onLoaded: { + root.actualCurrent = text().trim(); + root.previewColourLock = false; + } } Process { @@ -87,14 +91,6 @@ Singleton { } } - Process { - id: setWall - - property string path - - command: ["caelestia", "wallpaper", "-f", path] - } - Process { running: true command: ["find", root.path, "-type", "d", "-path", '*/.*', "-prune", "-o", "-not", "-name", '.*', "-type", "f", "-print"]