- Reorganize directory structure into core/, features/, and themes/ - Colocate application Nix logic, configs, scripts, and theme overrides - Implement 'Inversion of Control' for theming: apps now pull theme-specific layouts - Update flake.nix and shared library paths to match the new structure - Document the new Feature-Centric architecture in README.md
34 lines
880 B
Bash
Executable File
34 lines
880 B
Bash
Executable File
#!/bin/bash
|
|
|
|
# nomarchy-theme-install: Install a new theme from a git repo for Nomarchy
|
|
# Usage: nomarchy-theme-install <git-repo-url>
|
|
|
|
if [[ -z $1 ]]; then
|
|
echo -e "\e[32mSee https://manuals.omamix.org/2/the-nomarchy-manual/90/extra-themes\n\e[0m"
|
|
REPO_URL=$(gum input --placeholder="Git repo URL for theme" --header="")
|
|
else
|
|
REPO_URL="$1"
|
|
fi
|
|
|
|
if [[ -z $REPO_URL ]]; then
|
|
exit 1
|
|
fi
|
|
|
|
THEMES_DIR="$HOME/.config/nomarchy/themes"
|
|
THEME_NAME=$(basename "$REPO_URL" .git | sed -E 's/^nomarchy-//; s/-theme$//')
|
|
THEME_PATH="$THEMES_DIR/$THEME_NAME"
|
|
|
|
# Remove existing theme if present
|
|
if [[ -d $THEME_PATH ]]; then
|
|
rm -rf "$THEME_PATH"
|
|
fi
|
|
|
|
# Clone the repo directly to ~/.config/nomarchy/themes
|
|
if ! git clone "$REPO_URL" "$THEME_PATH"; then
|
|
echo "Error: Failed to clone theme repo."
|
|
exit 1
|
|
fi
|
|
|
|
# Apply the new theme with nomarchy-theme-set
|
|
nomarchy-theme-set $THEME_NAME
|