mirror of
https://github.com/basecamp/omarchy.git
synced 2026-02-17 15:25:37 +00:00
71 lines
2.0 KiB
Bash
Executable File
71 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
if [[ -z $1 && $1 != "CNCLD" ]]; then
|
|
echo "Usage: omarchy-theme-set <theme-name>"
|
|
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 assets (excluding templates, if any found in theme dir, though they shouldn't be there)
|
|
# We copy everything from the theme directory first.
|
|
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"
|
|
|
|
if [[ -x "$(command -v omarchy-theme-render)" ]]; then
|
|
omarchy-theme-render "$COLORS_FILE" "$TEMPLATES_DIR" "$CURRENT_THEME_DIR"
|
|
else
|
|
# Fallback to local script if not in PATH (development scenario)
|
|
SCRIPT_DIR="$(dirname "$(realpath "$0")")"
|
|
if [[ -x "$SCRIPT_DIR/omarchy-theme-render" ]]; then
|
|
"$SCRIPT_DIR/omarchy-theme-render" "$COLORS_FILE" "$TEMPLATES_DIR" "$CURRENT_THEME_DIR"
|
|
else
|
|
echo "Error: omarchy-theme-render not found"
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
# 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"
|