101 lines
2.0 KiB
Bash
101 lines
2.0 KiB
Bash
#!/usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
|
|
REPO_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
CONFIGS_DIR="$REPO_DIR/configs"
|
|
|
|
echo "========================================"
|
|
echo " Milan's Omarchy Setup Installer"
|
|
echo "========================================"
|
|
echo
|
|
|
|
#
|
|
# Update system
|
|
#
|
|
echo "[1/5] Updating system..."
|
|
yay -Syu --noconfirm
|
|
|
|
#
|
|
# Install packages
|
|
#
|
|
echo
|
|
echo "[2/5] Installing packages..."
|
|
|
|
if [[ -f "$REPO_DIR/packages.txt" ]]; then
|
|
yay -S --needed --noconfirm $(<"$REPO_DIR/packages.txt")
|
|
fi
|
|
|
|
if [[ -s "$REPO_DIR/aur-packages.txt" ]]; then
|
|
yay -S --needed --noconfirm $(<"$REPO_DIR/aur-packages.txt")
|
|
fi
|
|
|
|
#
|
|
# Symlink configs
|
|
#
|
|
echo
|
|
echo "[3/5] Linking configs..."
|
|
|
|
mkdir -p "$HOME/.config"
|
|
|
|
for item in "$CONFIGS_DIR"/*; do
|
|
|
|
name="$(basename "$item")"
|
|
|
|
target="$HOME/.config/$name"
|
|
|
|
# Skip if already linked correctly
|
|
if [[ -L "$target" ]]; then
|
|
if [[ "$(readlink -f "$target")" == "$(readlink -f "$item")" ]]; then
|
|
echo "✓ $name already linked"
|
|
continue
|
|
fi
|
|
fi
|
|
|
|
# Backup existing config
|
|
if [[ -e "$target" && ! -L "$target" ]]; then
|
|
backup="${target}.backup.$(date +%Y%m%d-%H%M%S)"
|
|
echo "Backing up $name -> $(basename "$backup")"
|
|
mv "$target" "$backup"
|
|
fi
|
|
|
|
rm -rf "$target"
|
|
|
|
ln -s "$item" "$target"
|
|
|
|
echo "Linked $name"
|
|
|
|
done
|
|
|
|
#
|
|
# Enable user services
|
|
#
|
|
echo
|
|
echo "[4/5] Enabling user services..."
|
|
|
|
if [[ -f "$REPO_DIR/system/user-services.txt" ]]; then
|
|
awk '{print $1}' "$REPO_DIR/system/user-services.txt" |
|
|
while read -r service; do
|
|
[[ -z "$service" ]] && continue
|
|
systemctl --user enable "$service" >/dev/null 2>&1 || true
|
|
done
|
|
fi
|
|
|
|
#
|
|
# Font cache
|
|
#
|
|
echo
|
|
echo "[5/5] Refreshing font cache..."
|
|
fc-cache -fv >/dev/null 2>&1 || true
|
|
|
|
echo
|
|
echo "========================================"
|
|
echo " Finished!"
|
|
echo "========================================"
|
|
echo
|
|
echo "You may want to:"
|
|
echo " • Log out and back in"
|
|
echo " • Run: omarchy-theme (if needed)"
|
|
echo " • Restart Waybar/Hyprland if configs changed"
|
|
echo
|