initial dotfiles setup
Profile-based dotfiles with switchable color themes. Structure: profiles/ with themes/ and config/ per profile.
This commit is contained in:
Executable
+20
@@ -0,0 +1,20 @@
|
||||
#!/bin/bash
|
||||
# Usage: switch-profile.sh <profile-name>
|
||||
PROFILE="${1:-}"
|
||||
|
||||
if [[ -z "$PROFILE" ]]; then
|
||||
echo "Available profiles:"
|
||||
ls "$HOME/profiles/"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ ! -d "$HOME/profiles/$PROFILE" ]]; then
|
||||
echo "Profile not found: $PROFILE"
|
||||
echo "Available profiles:"
|
||||
ls "$HOME/profiles/"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
"$HOME/profiles/$PROFILE/install.sh"
|
||||
hyprctl reload
|
||||
echo "Switched to profile: $PROFILE"
|
||||
Executable
+20
@@ -0,0 +1,20 @@
|
||||
#!/bin/bash
|
||||
# Usage: switch-theme.sh <theme-name>
|
||||
PROFILE_DIR=$(readlink "$HOME/.active_profile" 2>/dev/null)
|
||||
THEME="${1:-}"
|
||||
|
||||
if [[ -z "$THEME" ]]; then
|
||||
echo "Available themes:"
|
||||
ls "$PROFILE_DIR/themes/"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ ! -d "$PROFILE_DIR/themes/$THEME" ]]; then
|
||||
echo "Theme not found: $THEME"
|
||||
echo "Available themes:"
|
||||
ls "$PROFILE_DIR/themes/"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
ln -sfn "$PROFILE_DIR/themes/$THEME" "$HOME/.active_theme"
|
||||
~/.config/wal/reload.sh
|
||||
Executable
+34
@@ -0,0 +1,34 @@
|
||||
#!/bin/bash
|
||||
PROFILES_DIR="$HOME/profiles"
|
||||
ACTIVE=$(basename "$(readlink "$HOME/.active_profile" 2>/dev/null)")
|
||||
|
||||
for profile_dir in "$PROFILES_DIR"/*/; do
|
||||
[[ ! -d "$profile_dir/.git" ]] && continue
|
||||
profile=$(basename "$profile_dir")
|
||||
|
||||
echo "==> $profile"
|
||||
cd "$profile_dir" || continue
|
||||
|
||||
git fetch origin --quiet 2>/dev/null || { echo " fetch failed (no remote?)"; continue; }
|
||||
|
||||
LOCAL=$(git rev-parse HEAD 2>/dev/null)
|
||||
REMOTE=$(git rev-parse "@{u}" 2>/dev/null)
|
||||
|
||||
if [[ "$LOCAL" == "$REMOTE" ]]; then
|
||||
echo " up to date"
|
||||
continue
|
||||
fi
|
||||
|
||||
git pull --ff-only || { echo " pull failed (conflicts? run: cd $profile_dir && git status)"; continue; }
|
||||
echo " updated"
|
||||
|
||||
if [[ "$profile" == "$ACTIVE" ]]; then
|
||||
echo " active profile changed — reinstalling..."
|
||||
"$profile_dir/install.sh"
|
||||
hyprctl reload
|
||||
pkill waybar; sleep 0.3; waybar &disown
|
||||
echo " reloaded"
|
||||
fi
|
||||
done
|
||||
|
||||
echo "Done."
|
||||
Reference in New Issue
Block a user