#!/bin/bash if [[ -z $1 && $1 != "CNCLD" ]]; then echo "Usage: omarchy-theme-set " exit 1 fi THEMES_DIR="$HOME/.config/omarchy/themes/" CURRENT_THEME_DIR="$HOME/.config/omarchy/current/theme" THEME_NAME=$(echo "$1" | sed -E 's/<[^>]+>//g' | tr '[:upper:]' '[:lower:]' | tr ' ' '-') THEME_PATH="$THEMES_DIR/$THEME_NAME" # Check if the theme entered exists if [[ ! -d "$THEME_PATH" ]]; then echo "Theme '$THEME_NAME' does not exist in $THEMES_DIR" exit 1 fi # Prepare current theme directory (replacing symlink if it exists) if [[ -L "$CURRENT_THEME_DIR" ]]; then rm "$CURRENT_THEME_DIR" elif [[ -d "$CURRENT_THEME_DIR" ]]; then rm -rf "$CURRENT_THEME_DIR" fi mkdir -p "$CURRENT_THEME_DIR" # Copy static configs cp -r "$THEME_PATH/"* "$CURRENT_THEME_DIR/" 2>/dev/null # Generate configuration files from templates TEMPLATES_DIR="$THEMES_DIR/templates.d" COLORS_FILE="$THEME_PATH/colors.toml" omarchy-theme-render "$COLORS_FILE" "$TEMPLATES_DIR" "$CURRENT_THEME_DIR" # Change background with theme omarchy-theme-bg-next # Restart components to apply new theme if pgrep -x waybar >/dev/null; then omarchy-restart-waybar fi omarchy-restart-swayosd omarchy-restart-terminal hyprctl reload pkill -SIGUSR2 btop makoctl reload # Change gnome, browser, vscode, cursor themes omarchy-theme-set-gnome omarchy-theme-set-browser omarchy-theme-set-vscode omarchy-theme-set-cursor omarchy-theme-set-obsidian # Call hook on theme set omarchy-hook theme-set "$THEME_NAME"