diff --git a/Makefile b/Makefile index e7de0fa..265bd2c 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,15 @@ # Define list of directories you want to stow CONFIG_DIRS := btop doom hypr kitty local nvim rclone starship tmux wallpapers waybar wireplumber wofi yazi zsh +# Local stow package directory (installed to ~/.local) +STOW_LOCAL_DIR := local + all: stow_all wal -i ~/.config/wallpapers/green_yellow_forest.jpg -o ~/.config/waybar/launch.sh neofetch +.PHONY: all stow_all stow_local stow_rclone post_install_rclone clean + # Main target to handle stowing for all directories except rclone stow_all: $(filter-out rclone, $(CONFIG_DIRS)) @echo "Cleaning broken symlinks in ~/.config..." @@ -21,6 +26,13 @@ stow_%: @echo "Stowing $*" stow -v -t $(HOME) $* +# Special target for the local stow package +stow_local: + @echo "Cleaning broken symlinks in ~/.local/share/applications..." + find ~/.local/share/applications -xtype l -delete -print + @echo "Stowing local package" + stow -v -t $(HOME) $(STOW_LOCAL_DIR) + # Post-installation script for rclone (executed after stowing) post_install_rclone: @echo "Running post-installation script for rclone" @@ -35,3 +47,11 @@ stow_rclone: @echo "Stowing rclone" stow -v -t $(HOME) rclone @$(MAKE) post_install_rclone + +# Unstow all packages +clean: + @echo "Unstowing all packages..." + @for dir in $(CONFIG_DIRS); do \ + echo "Unstowing $$dir..."; \ + stow -v -D -t $(HOME) $$dir 2>/dev/null || true; \ + done