diff --git a/quickshell/refresh-quickshell b/quickshell/refresh-quickshell new file mode 100755 index 0000000..473ad05 --- /dev/null +++ b/quickshell/refresh-quickshell @@ -0,0 +1,74 @@ +#!/usr/bin/env bash +# ============================================================================== +# refresh-quickshell +# Automatic repository stash, pull, config sync, and QuickShell service restarter +# ============================================================================== + +set -e + +BOLD='\033[1m' +GREEN='\033[0;32m' +CYAN='\033[0;36m' +YELLOW='\033[1;33m' +RED='\033[0;31m' +NC='\033[0m' + +echo -e "${CYAN}${BOLD}[refresh-quickshell]${NC} Stashing local changes and pulling latest updates..." + +THEMES_DIR="${HOME}/Documents/themes" + +if [ -d "$THEMES_DIR/.git" ]; then + git -C "$THEMES_DIR" stash || true + git -C "$THEMES_DIR" pull origin main || echo -e "${YELLOW}${BOLD}[WARNING]${NC} Git pull finished with warnings." + echo -e "${GREEN}${BOLD}[SUCCESS]${NC} Git repository pulled from main!" +else + echo -e "${YELLOW}${BOLD}[WARNING]${NC} Git repository not found at ${THEMES_DIR}" +fi + +echo -e "${CYAN}${BOLD}[refresh-quickshell]${NC} Syncing configurations to ~/.config/quickshell..." +mkdir -p "${HOME}/.config/quickshell" + +if [ -d "$THEMES_DIR/quickshell" ]; then + rsync -av --exclude='tmp' "$THEMES_DIR/quickshell/" "${HOME}/.config/quickshell/" +fi + +if [ -d "$THEMES_DIR/fastfetch" ]; then + mkdir -p "${HOME}/.config/fastfetch" + rsync -av "$THEMES_DIR/fastfetch/" "${HOME}/.config/fastfetch/" +fi + +echo -e "${CYAN}${BOLD}[refresh-quickshell]${NC} Restarting QuickShell and desktop services..." + +if systemctl --user is-active --quiet quickshell.service 2>/dev/null; then + systemctl --user restart quickshell.service + echo -e "${GREEN}${BOLD}[SUCCESS]${NC} QuickShell systemd service restarted!" +else + killall quickshell 2>/dev/null || true + pkill -f active_window_service.py 2>/dev/null || true + pkill -f recolor_watcher.py 2>/dev/null || true + sleep 0.5 + + QUICKSHELL_BIN="$(command -v quickshell 2>/dev/null || echo 'quickshell')" + nohup "$QUICKSHELL_BIN" >/dev/null 2>&1 & + nohup python3 "${HOME}/.config/quickshell/services/python/active_window_service.py" >/dev/null 2>&1 & + nohup python3 "${HOME}/.config/quickshell/services/python/recolor_watcher.py" >/dev/null 2>&1 & + echo -e "${GREEN}${BOLD}[SUCCESS]${NC} QuickShell background processes restarted!" +fi + +# Run theme sync engine to ensure active theme applies across all apps +THEME_SYNC_SCRIPT="${HOME}/.config/quickshell/services/python/theme_sync.py" +if [ -f "$THEME_SYNC_SCRIPT" ]; then + python3 "$THEME_SYNC_SCRIPT" \ + --bg "#22212c" \ + --surface "#2b2938" \ + --currentLine "#454158" \ + --fg "#f8f8f2" \ + --accent "#9580ff" \ + --subAccent "#ff80bf" \ + --isDark true \ + --variantName Pro 2>/dev/null || true +fi + +echo -e "${GREEN}${BOLD}==========================================================" +echo " QuickShell Ecosystem Successfully Refreshed! " +echo "=========================================================="${NC} diff --git a/refresh-quickshell b/refresh-quickshell new file mode 100755 index 0000000..473ad05 --- /dev/null +++ b/refresh-quickshell @@ -0,0 +1,74 @@ +#!/usr/bin/env bash +# ============================================================================== +# refresh-quickshell +# Automatic repository stash, pull, config sync, and QuickShell service restarter +# ============================================================================== + +set -e + +BOLD='\033[1m' +GREEN='\033[0;32m' +CYAN='\033[0;36m' +YELLOW='\033[1;33m' +RED='\033[0;31m' +NC='\033[0m' + +echo -e "${CYAN}${BOLD}[refresh-quickshell]${NC} Stashing local changes and pulling latest updates..." + +THEMES_DIR="${HOME}/Documents/themes" + +if [ -d "$THEMES_DIR/.git" ]; then + git -C "$THEMES_DIR" stash || true + git -C "$THEMES_DIR" pull origin main || echo -e "${YELLOW}${BOLD}[WARNING]${NC} Git pull finished with warnings." + echo -e "${GREEN}${BOLD}[SUCCESS]${NC} Git repository pulled from main!" +else + echo -e "${YELLOW}${BOLD}[WARNING]${NC} Git repository not found at ${THEMES_DIR}" +fi + +echo -e "${CYAN}${BOLD}[refresh-quickshell]${NC} Syncing configurations to ~/.config/quickshell..." +mkdir -p "${HOME}/.config/quickshell" + +if [ -d "$THEMES_DIR/quickshell" ]; then + rsync -av --exclude='tmp' "$THEMES_DIR/quickshell/" "${HOME}/.config/quickshell/" +fi + +if [ -d "$THEMES_DIR/fastfetch" ]; then + mkdir -p "${HOME}/.config/fastfetch" + rsync -av "$THEMES_DIR/fastfetch/" "${HOME}/.config/fastfetch/" +fi + +echo -e "${CYAN}${BOLD}[refresh-quickshell]${NC} Restarting QuickShell and desktop services..." + +if systemctl --user is-active --quiet quickshell.service 2>/dev/null; then + systemctl --user restart quickshell.service + echo -e "${GREEN}${BOLD}[SUCCESS]${NC} QuickShell systemd service restarted!" +else + killall quickshell 2>/dev/null || true + pkill -f active_window_service.py 2>/dev/null || true + pkill -f recolor_watcher.py 2>/dev/null || true + sleep 0.5 + + QUICKSHELL_BIN="$(command -v quickshell 2>/dev/null || echo 'quickshell')" + nohup "$QUICKSHELL_BIN" >/dev/null 2>&1 & + nohup python3 "${HOME}/.config/quickshell/services/python/active_window_service.py" >/dev/null 2>&1 & + nohup python3 "${HOME}/.config/quickshell/services/python/recolor_watcher.py" >/dev/null 2>&1 & + echo -e "${GREEN}${BOLD}[SUCCESS]${NC} QuickShell background processes restarted!" +fi + +# Run theme sync engine to ensure active theme applies across all apps +THEME_SYNC_SCRIPT="${HOME}/.config/quickshell/services/python/theme_sync.py" +if [ -f "$THEME_SYNC_SCRIPT" ]; then + python3 "$THEME_SYNC_SCRIPT" \ + --bg "#22212c" \ + --surface "#2b2938" \ + --currentLine "#454158" \ + --fg "#f8f8f2" \ + --accent "#9580ff" \ + --subAccent "#ff80bf" \ + --isDark true \ + --variantName Pro 2>/dev/null || true +fi + +echo -e "${GREEN}${BOLD}==========================================================" +echo " QuickShell Ecosystem Successfully Refreshed! " +echo "=========================================================="${NC}