settings: wallpaper download + purity toggle, repo-owned
Adds a Download-random-wallpaper button and a 3-way content filter (SFW/Sketchy/NSFW) to our Wallpaper settings page, backed by a new WallpaperDownload service and its own download script under surfaces/quickshell/scripts/wallpaper/ — not ii's scripts/colors tree, which is going away. Only the 'wallpapers apply' IPC target still comes from ii and moves with it when the base is vendored. Downloads are named by wallhaven id so the library accumulates instead of overwriting a single wallhaven_wallpaper.<ext>. Purity is read from and written to background.wallhaven.purity in config.json (not in the upstream Config.options schema). Anchors the root scripts/ gitignore to / so shipped surface scripts are tracked.
This commit is contained in:
parent
0d06cbb983
commit
cd2150542e
6 changed files with 327 additions and 11 deletions
|
|
@ -4,10 +4,15 @@
|
|||
# Model: ~/.config/quickshell/souveraine is BUILT by this script —
|
||||
# - our files (this repo) are symlinked in, repo stays source of truth
|
||||
# - untouched upstream directories are borrowed as whole-dir symlinks
|
||||
# into the pristine ii tree (so upstream updates flow through)
|
||||
# into the ii tree (so upstream updates flow through)
|
||||
# - directories where we override any file are composed file-by-file
|
||||
# ii's own tree is left pristine: no overlay symlinks, no .upstream backups.
|
||||
# Cutting the cord from ii later = vendor a borrowed dir, per directory.
|
||||
# The ii tree itself is DEPLOYED from this repo (ii-base/, the pinned base —
|
||||
# vendored 2026-07-21 after laptop/phone drifted ~900 files): every run
|
||||
# rsyncs ii-base -> ~/.config/quickshell/ii, so "borrowed from ii" means
|
||||
# borrowed from the same pin on every device. On the phone (aarch64) the
|
||||
# ii-phone/ overlay is applied on top — the declared home for phone-only
|
||||
# files (Cellular, mobile bar/OSK/wallpaper behavior). Never hand-edit
|
||||
# ~/.config/quickshell/ii; change ii-base/ (or ii-phone/) and redeploy.
|
||||
#
|
||||
# deploy.sh compose ~/.config/quickshell/souveraine
|
||||
# deploy.sh -u remove the souveraine config dir (ii untouched)
|
||||
|
|
@ -25,6 +30,7 @@ SV="${QS}/souveraine"
|
|||
MANIFEST="
|
||||
shell.qml souveraine/shell.qml
|
||||
GlobalStates.qml souveraine/GlobalStates.qml
|
||||
settings.qml souveraine/settings.qml
|
||||
settings-phone.qml souveraine/settings-phone.qml
|
||||
panelFamilies/SouveraineFamily.qml souveraine/panelFamilies/SouveraineFamily.qml
|
||||
services/Souveraine.qml souveraine/services/Souveraine.qml
|
||||
|
|
@ -35,6 +41,8 @@ services/Idle.qml souveraine/services/Idle.qml
|
|||
services/IdleCoordinator.qml souveraine/services/IdleCoordinator.qml
|
||||
services/LockContentPolicy.qml souveraine/services/LockContentPolicy.qml
|
||||
services/WallpaperAssets.qml souveraine/services/WallpaperAssets.qml
|
||||
services/WallpaperDownload.qml souveraine/services/WallpaperDownload.qml
|
||||
scripts/wallpaper/download_wallhaven.sh souveraine/scripts/wallpaper/download_wallhaven.sh
|
||||
services/ConflictKiller.qml souveraine/services/ConflictKiller.qml
|
||||
services/SessionEvents.qml souveraine/services/SessionEvents.qml
|
||||
services/SessiondBridge.qml souveraine/services/SessiondBridge.qml
|
||||
|
|
@ -110,7 +118,8 @@ modules/ii/sidebarRight/volumeMixer/qmldir souveraine/modules/ii/sidebarRight/vo
|
|||
modules/settings/qmldir souveraine/modules/settings/qmldir
|
||||
"
|
||||
|
||||
PHONE_USB=casey@172.16.42.1
|
||||
# wifi fallback: PHONE_HOST=casey@10.10.20.234 ./deploy.sh --phone
|
||||
PHONE_USB="${PHONE_HOST:-casey@172.16.42.1}"
|
||||
PHONE_DEST="souveraine-surfaces/quickshell"
|
||||
|
||||
manifest_lines() { printf '%s\n' "$MANIFEST" | sed '/^[[:space:]]*$/d'; }
|
||||
|
|
@ -175,7 +184,16 @@ if [[ "${1:-}" == "--legacy-clean" ]]; then
|
|||
exit 0
|
||||
fi
|
||||
|
||||
[[ -d "$II" ]] || { echo "illogical-impulse config not found at $II" >&2; exit 1; }
|
||||
# --- Sync the pinned ii base --------------------------------------------
|
||||
# --exclude .git: the pin carries no VCS dirs, and any nested .git already
|
||||
# on a device (e.g. widgets/shapes) is left alone rather than deleted.
|
||||
rsync -a --delete --exclude='.git' "$SRC/ii-base/" "$II/"
|
||||
if [[ "$(uname -m)" == "aarch64" ]]; then
|
||||
rsync -a "$SRC/ii-phone/" "$II/"
|
||||
echo "ii synced from pin + phone overlay"
|
||||
else
|
||||
echo "ii synced from pin"
|
||||
fi
|
||||
|
||||
# --- Compose -------------------------------------------------------------
|
||||
# Targets under souveraine/, relative to $SV
|
||||
|
|
|
|||
Loading…
Reference in a new issue