Single-script builder (nosignal.sh) that turns a stock Arch Linux ISO into a fully-offline installer for a themed Hyprland + caelestia (Quickshell) desktop: matching SDDM greeter, Btrfs/Limine bootable snapshots, chwd-style GPU detection, and a curated "os updates" layer (keybind cheatsheet, settings panels, system polish, on-box management skill). See README.md. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
44 lines
1.9 KiB
Bash
Executable file
44 lines
1.9 KiB
Bash
Executable file
#!/bin/sh
|
|
# patch-servicespage.sh — add the "CachyOS repositories" toggle to the caelestia
|
|
# Settings -> Services page. Runs as root (installer, or the pacman hook after a
|
|
# caelestia-shell upgrade reverts ServicesPage.qml). Idempotent.
|
|
#
|
|
# 1. install CachyRepoToggleRow.qml into nexus/common/ (untracked -> survives upgrades)
|
|
# 2. insert `CachyRepoToggleRow {}` after the "Smart colour scheme" ToggleRow in
|
|
# ServicesPage.qml (same anchor the sudo toggle uses; both land together)
|
|
#
|
|
# NoSignal bakes both the component and the page insert into the pinned
|
|
# nosignal-shell fork, so this patch is only for migration of older
|
|
# stock-caelestia installs (run by the nosignal-update migration).
|
|
set -eu
|
|
|
|
SELF_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
|
|
NEXUS=${NEXUS:-/etc/xdg/quickshell/caelestia/modules/nexus}
|
|
COMMON="$NEXUS/common"
|
|
PAGE="$NEXUS/pages/ServicesPage.qml"
|
|
|
|
[ -f "$PAGE" ] || { echo "caelestia ServicesPage not found at $PAGE — nothing to patch"; exit 0; }
|
|
|
|
# 1. component type (auto-discovered via `import qs.modules.nexus.common`)
|
|
install -m 0644 "$SELF_DIR/CachyRepoToggleRow.qml" "$COMMON/CachyRepoToggleRow.qml"
|
|
|
|
# 2. insert the row (idempotent)
|
|
if grep -q 'CachyRepoToggleRow' "$PAGE"; then
|
|
echo ":: ServicesPage already has the CachyOS toggle"
|
|
exit 0
|
|
fi
|
|
grep -q 'smartScheme = checked' "$PAGE" || {
|
|
echo "WARNING: anchor (Smart colour scheme ToggleRow) not found in ServicesPage — skipping insert" >&2
|
|
exit 0
|
|
}
|
|
|
|
cp -n "$PAGE" "$PAGE.pre-nosignal-cachy" 2>/dev/null || true
|
|
perl -0pi -e 's/(onToggled: GlobalConfig\.services\.smartScheme = checked\n\s*\})/$1\n\n CachyRepoToggleRow {\n Layout.fillWidth: true\n }/' "$PAGE"
|
|
|
|
if grep -q 'CachyRepoToggleRow' "$PAGE"; then
|
|
echo ":: patched ServicesPage (CachyOS toggle added)"
|
|
else
|
|
echo "WARNING: ServicesPage insert did not take; restoring" >&2
|
|
[ -f "$PAGE.pre-nosignal-cachy" ] && cp "$PAGE.pre-nosignal-cachy" "$PAGE"
|
|
exit 1
|
|
fi
|