#!/usr/bin/env bash # Resolve ~/.config/omarchy/current/{theme,background} symlinks from the # persisted theme.name / background.name state files. Only manages symlinks; # restarting clients (swaybg/waybar/hyprland) is the caller's job. # # Safe to run as root (system activation) or as the user: honour $HOME. set -euo pipefail OMARCHY_PATH="${OMARCHY_PATH:-$HOME/.local/share/omarchy}" CURRENT="$HOME/.config/omarchy/current" THEMES="$OMARCHY_PATH/themes" mkdir -p "$CURRENT" # --- theme --- name="$(cat "$CURRENT/theme.name" 2>/dev/null || true)" if [ -z "$name" ] || [ ! -d "$THEMES/$name" ]; then name="$(find "$THEMES" -maxdepth 1 -mindepth 1 -type d -printf '%f\n' | sort | head -n1)" printf '%s\n' "$name" >"$CURRENT/theme.name" fi ln -sfn "$THEMES/$name" "$CURRENT/theme" # --- background --- bg="$(cat "$CURRENT/background.name" 2>/dev/null || true)" if [ -z "$bg" ] || [ ! -e "$THEMES/$name/backgrounds/$bg" ]; then bg="$(find "$THEMES/$name/backgrounds" -maxdepth 1 -type f -printf '%f\n' 2>/dev/null | sort | head -n1)" printf '%s\n' "$bg" >"$CURRENT/background.name" fi if [ -n "$bg" ]; then ln -sfn "$THEMES/$name/backgrounds/$bg" "$CURRENT/background" fi exit 0