NoSignal-OS/os updates/sddm-theme/install-sddm-theme.sh
28allday 19fd794b6b NoSignal — fully-offline Arch → Hyprland desktop installer
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>
2026-06-21 11:03:10 +01:00

46 lines
2.1 KiB
Bash
Executable file

#!/bin/sh
# install-sddm-theme.sh — SDDM greeter themed to match the desktop (Material
# palette from the caelestia scheme, the shell's Google Sans Flex font, and
# the current wallpaper as background). Idempotent. Needs sudo.
set -eu
SRC=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
THEME=/usr/share/sddm/themes/caelestia
# 1. Theme files.
sudo install -d -m 0755 "$THEME" "$THEME/backgrounds"
sudo install -m 0644 "$SRC/caelestia/Main.qml" "$THEME/Main.qml"
sudo install -m 0644 "$SRC/caelestia/metadata.desktop" "$THEME/metadata.desktop"
# Default theme.conf only if none exists yet (sync overwrites it anyway).
[ -f "$THEME/theme.conf" ] || sudo install -m 0644 "$SRC/caelestia/theme.conf" "$THEME/theme.conf"
echo ":: installed SDDM theme to $THEME"
# 2. Sync script + initial sync from the current scheme/wallpaper (best
# effort: if there is no scheme yet — e.g. at image build time — the
# shipped foam-sea defaults in theme.conf apply, but the background still
# needs to be provided; see README builder notes).
sudo install -m 0755 "$SRC/sddm-theme-sync" /usr/local/bin/sddm-theme-sync
if sudo /usr/local/bin/sddm-theme-sync; then
:
else
echo "NOTE: initial sync failed (no caelestia scheme yet?) — shipped defaults kept."
if [ ! -e "$THEME/backgrounds/wallpaper.png" ] && [ -f "$HOME/Pictures/Wallpapers/nosignal/foam-sea.png" ]; then
sudo install -m 0644 "$HOME/Pictures/Wallpapers/nosignal/foam-sea.png" "$THEME/backgrounds/wallpaper.png"
echo ":: seeded foam-sea.png as the greeter background"
fi
fi
# 3. Point SDDM at the theme (drop-in, doesn't touch 10-nosignal.conf).
if [ ! -f /etc/sddm.conf.d/20-sddm-theme.conf ]; then
sudo tee /etc/sddm.conf.d/20-sddm-theme.conf > /dev/null << 'EOF'
# Greeter theme matching the desktop scheme (sddm-theme component).
# Remove this file to fall back to SDDM's default greeter.
[Theme]
Current=caelestia
EOF
echo ":: set SDDM theme to 'caelestia'"
fi
echo "Done. Preview without logging out:"
echo " sddm-greeter-qt6 --test-mode --theme $THEME"
echo "Re-sync after a wallpaper change: sudo sddm-theme-sync"