From 8b7356e563690478603370496bce0f0895ed0b05 Mon Sep 17 00:00:00 2001 From: Pepe44DEV Date: Tue, 17 Mar 2026 00:47:52 +0100 Subject: [PATCH] Inital Comit Upload README and Install Script --- README.md | 17 +++++++++ install.sh | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 118 insertions(+) create mode 100644 README.md create mode 100644 install.sh diff --git a/README.md b/README.md new file mode 100644 index 0000000..25c170c --- /dev/null +++ b/README.md @@ -0,0 +1,17 @@ +# 🟢 PDEV Hyprland Setup + +A modern Wayland rice using: +- Hyprland +- Waybar +- Wofi +- Swaync +- Kitty + Fish + Starship + +## 📸 Preview +![desktop](screenshots/desktop.png) + +## 🚀 Installation +```bash +git clone ... +cd ... +./install.sh diff --git a/install.sh b/install.sh new file mode 100644 index 0000000..dc9cde6 --- /dev/null +++ b/install.sh @@ -0,0 +1,101 @@ +#!/usr/bin/env bash + +set -euo pipefail + +BASE_DIR="$HOME/.config/pdev-dotfiles" +CONFIG_DIR="$HOME/.config" +BACKUP_DIR="$HOME/.config-backup-$(date +%Y%m%d-%H%M%S)" + +REPOS=( + "hypr|https://git.pepe44.dev/Pepe44DEV/Hyprland-Config.git" + "waybar|https://git.pepe44.dev/Pepe44DEV/Waybar-Config.git" + "wofi|https://git.pepe44.dev/Pepe44DEV/Wofi-Config.git" + "swaync|https://git.pepe44.dev/Pepe44DEV/Swaync-Config.git" +) + +PACKAGES=( + hyprland + waybar + wofi + swaync + kitty + fish + starship + cava + git +) + +log() { + echo "[INFO] $1" +} + +backup_config() { + local name="$1" + if [ -e "$CONFIG_DIR/$name" ]; then + mkdir -p "$BACKUP_DIR" + log "Sichere $CONFIG_DIR/$name nach $BACKUP_DIR/$name" + mv "$CONFIG_DIR/$name" "$BACKUP_DIR/$name" + fi +} + +install_packages() { + if command -v pacman >/dev/null 2>&1; then + log "Installiere benötigte Pakete..." + sudo pacman -S --needed "${PACKAGES[@]}" + else + log "Pacman nicht gefunden, Paketinstallation übersprungen." + fi +} + +clone_or_update_repo() { + local name="$1" + local url="$2" + local target="$BASE_DIR/$name" + + if [ -d "$target/.git" ]; then + log "Update $name ..." + git -C "$target" pull + else + log "Clone $name ..." + git clone "$url" "$target" + fi +} + +install_config() { + local name="$1" + local repo_path="$BASE_DIR/$name" + + if [ ! -d "$repo_path" ]; then + log "Repo für $name nicht gefunden, überspringe." + return + fi + + backup_config "$name" + log "Installiere $name nach $CONFIG_DIR/$name" + cp -r "$repo_path" "$CONFIG_DIR/$name" +} + +main() { + mkdir -p "$BASE_DIR" + mkdir -p "$CONFIG_DIR" + + install_packages + + for entry in "${REPOS[@]}"; do + IFS="|" read -r name url <<< "$entry" + clone_or_update_repo "$name" "$url" + done + + for entry in "${REPOS[@]}"; do + IFS="|" read -r name url <<< "$entry" + install_config "$name" + done + + echo + echo "Fertig." + if [ -d "$BACKUP_DIR" ]; then + echo "Backup liegt hier: $BACKUP_DIR" + fi +} + +main "$@" \ No newline at end of file