#!/bin/bash # omarchy-theme-remove: Remove a theme from Omarchy by name # Usage: omarchy-theme-remove THEME_NAME="$1" THEMES_DIR="$HOME/.config/omarchy/themes" BACKGROUND_DIR="$HOME/.config/omarchy/backgrounds" CURRENT_DIR="$HOME/.config/omarchy/current" THEME_PATH="$THEMES_DIR/$THEME_NAME" BACKGROUND_PATH="$BACKGROUND_DIR/$THEME_NAME" set -e if [ -z "$1" ]; then echo "Usage: omarchy-theme-remove " exit 1 fi # Count available themes (directories in ~/.config/omarchy/themes) THEMES=($(find "$THEMES_DIR" -mindepth 1 -maxdepth 1 -type d | sort)) if [ ${#THEMES[@]} -le 1 ]; then echo "Error: Cannot remove the last remaining theme. At least one theme must be installed." exit 1 fi # Check if theme exists before attempting removal if [ ! -d "$THEME_PATH" ]; then echo "Error: Theme '$THEME_NAME' not found." exit 1 fi # Check if the theme to be removed is the current theme IS_CURRENT=0 # Use readlink -f to resolve symlinks and get the absolute path if [ "$(readlink -f "$CURRENT_DIR/theme")" = "$(readlink -f "$THEME_PATH")" ]; then IS_CURRENT=1 fi # If it is, switch to the next theme before removing if [ $IS_CURRENT -eq 1 ]; then "$HOME/.local/share/omarchy/bin/omarchy-theme-next" fi # Now remove the theme directory and backgrounds for THEME_NAME rm -rf "$THEME_PATH" if [ -d "$BACKGROUND_PATH" ]; then rm -rf "$BACKGROUND_PATH" fi notify-send "Theme '$THEME_NAME' removed." -t 2000