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 -}}