From 3428754d0ee9c85d3f65bd7d6d0cecb015ae7e41 Mon Sep 17 00:00:00 2001
From: Simon Rieger <simono41@brothertec.eu>
Date: Sat, 12 Apr 2025 13:04:14 +0200
Subject: [PATCH] add package installation

---
 install-fedora.sh                             | 72 +++++++++++++++++++
 install-macos.sh                              | 44 ++++++++++++
 private_dot_gnupg/private_gpg-agent.conf.tmpl | 12 ++--
 run_onchange_install-packages.sh.tmpl         |  5 ++
 4 files changed, 126 insertions(+), 7 deletions(-)
 create mode 100755 install-fedora.sh
 create mode 100755 install-macos.sh
 create mode 100644 run_onchange_install-packages.sh.tmpl

diff --git a/install-fedora.sh b/install-fedora.sh
new file mode 100755
index 0000000..bbd24c6
--- /dev/null
+++ b/install-fedora.sh
@@ -0,0 +1,72 @@
+#!/usr/bin/env bash
+set -e
+
+# OS-Überprüfung
+if [[ "$(uname -s)" != "Linux" ]] || ! grep -q '^ID_LIKE=fedora' /etc/os-release; then
+  echo "Dieses Skript läuft nur unter Fedora Linux" >&2
+  exit 1
+fi
+
+# DNF Grundkonfiguration
+sudo dnf -y install dnf-plugins-core
+sudo dnf-3 config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
+
+# Paketinstallationen gruppiert
+## Shell-Tools
+sudo dnf install -y \
+  fzf zsh-autosuggestions zsh-syntax-highlighting \
+  rg htop ncdu pwgen pass-otp gopass gopass-jsonapi \
+  tmux-powerline lolcat socat
+
+## GUI & Desktop
+sudo dnf install -y \
+  fuzzel papirus-icon-theme waybar pavucontrol-qt \
+  arc-theme hyprlock copyq nwg-dock-hyprland nwg-drawer \
+  nwg-panel nwg-launchers cascadia-code-nf-fonts \
+  jetbrains-mono-fonts la-capitaine-cursor-theme \
+  la-capitaine-icon-theme
+
+## Entwicklung
+sudo dnf install -y \
+  golang libgo-devel neovim python3-neovim \
+  ansible openldap-devel gcc python3-psycopg2 \
+  python3-postgresql golang-x-tools-toolstash \
+  golang-x-arch-devel.noarch
+
+## Systemdienste
+sudo dnf install -y \
+  dkms libdrm-devel hplip ydotool pkg-config \
+  libxkbcommon-devel scdoc inotify-tools \
+  net-snmp-utils net-snmp snmpd virt-manager \
+  @virtualization virt-what
+
+## Multimedia
+sudo dnf install -y \
+  vlc vlc-plugin-gstreamer vlc-plugin-pipewire \
+  vlc-libs vlc-plugin-ffmpeg ffmpeg ffmpeg-free \
+  gstreamer1-libav gstreamer1-vaapi \
+  gstreamer1-plugins-good gstreamer1-plugins-good-extras
+
+## Docker
+sudo dnf install -y \
+  docker-ce docker-ce-cli containerd.io \
+  docker-buildx-plugin docker-compose-plugin
+
+# Flatpak Setup
+flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo
+
+# Systemkonfiguration
+sudo usermod -s /bin/zsh simono41
+
+# Zusatzinstallationen mit Architekturprüfung
+curl -sS https://starship.rs/install.sh | sh
+
+ARCH="$(uname -m)"
+if [[ "$ARCH" == "aarch64" || "$ARCH" == "armv7l" ]]; then
+  CLIPHIST_URL="https://github.com/sentriz/cliphist/releases/download/v0.6.1/v0.6.1-linux-arm"
+else
+  CLIPHIST_URL="https://github.com/sentriz/cliphist/releases/download/v0.6.1/v0.6.1-linux-amd64"
+fi
+
+sudo wget -O /usr/bin/cliphist "$CLIPHIST_URL"
+sudo chmod +x /usr/bin/cliphist
diff --git a/install-macos.sh b/install-macos.sh
new file mode 100755
index 0000000..a2ba728
--- /dev/null
+++ b/install-macos.sh
@@ -0,0 +1,44 @@
+#!/usr/bin/env bash
+set -e
+
+# OS-Überprüfung
+if [[ "$(uname -s)" != "Darwin" ]]; then
+  echo "Dieses Skript läuft nur unter macOS" >&2
+  exit 1
+fi
+
+# Terminal Tools Installation
+brew install --cask wezterm
+brew install neovim tmux reattach-to-user-namespace starship \
+    zsh-completions zsh-autosuggestions zsh-autocomplete fzf ruby \
+    gnupg htop btop asciiquarium lolcat openjdk@17 python python-tk@3.11 \
+    python-gdbm@3.11 pinentry-mac
+pip3 install pyobjc
+
+# Java Symlinks erstellen
+sudo ln -sfn /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk
+sudo ln -sfn /opt/homebrew/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk
+
+# Clipboard Tools Installation
+brew install jq choose-gui rg
+brew install --cask flycut
+
+# Tailscale Installation und Konfiguration
+brew install tailscale
+sudo tailscaled install-system-daemon
+tailscale up --login-server=https://vpn.brothertec.eu --ssh --accept-routes
+
+# Fonts Installation (Nerd Fonts)
+brew tap homebrew/cask-fonts && brew install --cask font-jetbrains-mono-nerd-font
+
+# Entwicklungswerkzeuge für JetBrains installieren (optional)
+brew install kdoctor cocoapods
+
+# Optionale Tools installieren (Visual Studio Code, Prism Launcher)
+brew install --cask visual-studio-code prismlauncher
+
+# RBW (Rust Bitwarden CLI) Installation und Konfiguration
+brew install rbw
+rbw config set email simon@rieger.app
+rbw config set base_url https://vaultwarden.brothertec.eu
+rbw config set pinentry pinentry-mac
diff --git a/private_dot_gnupg/private_gpg-agent.conf.tmpl b/private_dot_gnupg/private_gpg-agent.conf.tmpl
index 256059c..7541009 100644
--- a/private_dot_gnupg/private_gpg-agent.conf.tmpl
+++ b/private_dot_gnupg/private_gpg-agent.conf.tmpl
@@ -1,17 +1,15 @@
 default-cache-ttl 300
 max-cache-ttl 999999
+
+# machine-specific configuration
 {{ if eq .chezmoi.os "darwin" -}}
+
 # macOS contents
 pinentry-program /opt/homebrew/bin/pinentry-mac
+
 {{ else if eq .chezmoi.os "linux" -}}
+
 # Linux contents
-
-{{ if eq .chezmoi.hostname "brothertec" -}}
-# Linux Server contents
 pinentry-program /usr/bin/pinentry
-{{ else -}}
-# Linux Desktop contents
-pinentry-program /usr/bin/pinentry-qt
-{{ end -}}
 
 {{ end -}}
diff --git a/run_onchange_install-packages.sh.tmpl b/run_onchange_install-packages.sh.tmpl
new file mode 100644
index 0000000..bddf987
--- /dev/null
+++ b/run_onchange_install-packages.sh.tmpl
@@ -0,0 +1,5 @@
+{{ if eq .chezmoi.os "linux" -}}
+{{ .chezmoi.homeDir }}/install-fedora.sh
+{{ else if eq .chezmoi.os "darwin" -}}
+{{ .chezmoi.homeDir }}/install-macos.sh
+{{ end -}}