Fork the desktop off Omarchy as a self-contained system
This commit is contained in:
Executable
+39
@@ -0,0 +1,39 @@
|
||||
#!/bin/bash
|
||||
|
||||
# blob:summary=Remove a user-installed theme
|
||||
# blob:args=[theme-name]
|
||||
# blob:examples=blob theme remove "Tokyo Night"
|
||||
|
||||
if [[ -z $1 ]]; then
|
||||
mapfile -t extra_themes < <(find ~/.config/blob/themes -mindepth 1 -maxdepth 1 -type d ! -xtype l -printf '%f\n')
|
||||
|
||||
if (( ${#extra_themes[@]} > 0 )); then
|
||||
mapfile -t extra_themes < <(printf '%s\n' "${extra_themes[@]}" | sort)
|
||||
THEME_NAME=$(blob-menu-select "Remove extra theme" "${extra_themes[@]}" -- --width 520 --maxheight 520)
|
||||
else
|
||||
echo "No extra themes installed."
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
THEME_NAME="$1"
|
||||
fi
|
||||
|
||||
THEMES_DIR="$HOME/.config/blob/themes"
|
||||
THEME_PATH="$THEMES_DIR/$THEME_NAME"
|
||||
|
||||
# Ensure a theme was set, and that the name cannot climb out of THEMES_DIR
|
||||
# on its way into the rm below.
|
||||
if [[ -z $THEME_NAME || $THEME_NAME == .* || $THEME_NAME == */* ]]; then
|
||||
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
|
||||
|
||||
# Now remove the theme directory for THEME_NAME
|
||||
rm -rf "$THEME_PATH"
|
||||
blob-notify-send "Theme removed" "$THEME_NAME" || true
|
||||
echo "Removed $THEME_NAME"
|
||||
Reference in New Issue
Block a user