aboutsummaryrefslogtreecommitdiffstats
path: root/desktop/Prefs.qml
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-10-29 17:06:48 +0100
committerDanilo M. <danix@danix.xyz>2026-10-29 17:06:48 +0100
commit68ee0a175acfa3940ed9e19c0e1aad714f799e47 (patch)
tree26430589f81340b102599d599e027349c0dd3fbc /desktop/Prefs.qml
parent4b6b7caa0b674a0cefdc8a893d0133c05568633b (diff)
downloadquickshell-68ee0a175acfa3940ed9e19c0e1aad714f799e47.tar.gz
quickshell-68ee0a175acfa3940ed9e19c0e1aad714f799e47.zip
wallpaper: a screen can draw from a gallery folder instead of its hearts
Every wallpaper in the gallery is wide, so hearting a whole folder one thumbnail at a time is the long way to say "this folder". Each screen now has a source on the engine page: its hearted list, or one gallery folder picked by chip, stored as the Wallpapers.groups key in Prefs (folderH, folderV, "" for the hearts). A folder that has left the gallery gives an empty pool, so that screen is left alone rather than quietly falling back to its hearts. The hearted list stays saved behind a folder source and comes back with the Hearted chip. Switching source needs nothing from the shuffle: draw() already drops bag entries that are no longer in the pool. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'desktop/Prefs.qml')
-rw-r--r--desktop/Prefs.qml8
1 files changed, 5 insertions, 3 deletions
diff --git a/desktop/Prefs.qml b/desktop/Prefs.qml
index 9a9b0b7..8634f87 100644
--- a/desktop/Prefs.qml
+++ b/desktop/Prefs.qml
@@ -51,10 +51,11 @@ Singleton {
property int settingsSidebar: 200
// The wallpaper engine (modules/appearance/WallEngine.qml): on or off,
- // the interval, a list of paths per screen, and each screen's home, the
- // wallpaper switching off returns to. In here rather than in list files:
+ // the interval, a list of paths per screen, the gallery folder a screen
+ // draws from instead of its list ("" for the list), and each screen's
+ // home, the wallpaper switching off returns to. In here rather than in list files:
// the lists can be empty, and an empty FileView write writes nothing.
- readonly property var wallEngineDefaults: ({ on: false, minutes: 30, h: [], v: [], homeH: "", homeV: "" })
+ readonly property var wallEngineDefaults: ({ on: false, minutes: 30, h: [], v: [], folderH: "", folderV: "", homeH: "", homeV: "" })
property var wallEngine: wallEngineDefaults
function setWallEngine(changes) {
const w = Object.assign({}, root.wallEngine, changes);
@@ -122,6 +123,7 @@ Singleton {
on: we.on === true,
minutes: Number.isInteger(we.minutes) && we.minutes >= 1 ? we.minutes : 30,
h: paths(we.h), v: paths(we.v),
+ folderH: str(we.folderH), folderV: str(we.folderV),
homeH: str(we.homeH), homeV: str(we.homeV),
};
}