#!/bin/bash set -euo pipefail SETUP_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PACKAGES_FILE="$SETUP_DIR/packages.txt" # shellcheck source=../lib/common.sh source "$SETUP_DIR/../lib/common.sh" # Arch installiert npm nach /usr/lib/node_modules (root-owned), # daher braucht der globale Install sudo. NPM_USE_SUDO=1 # --------------------------------------------------------------------------- # Post-install configuration. # --------------------------------------------------------------------------- set_fish_default_shell() { if command -v fish >/dev/null 2>&1; then if [[ "$SHELL" != "/usr/bin/fish" ]]; then echo "Setze fish als Standard-Shell ..." chsh -s /usr/bin/fish else echo "fish ist bereits die Standard-Shell." fi else echo "Warnung: fish wurde nicht installiert; ueberspringe chsh." fi } install_tmuxifier() { if [[ -d "$HOME/.tmuxifier" ]]; then echo "tmuxifier bereits installiert; fahre fort." else echo "Klone tmuxifier ..." git clone https://github.com/jimeh/tmuxifier.git "$HOME/.tmuxifier" fi } install_tmux_tpm() { if [[ -x "$HOME/.config/tmux/plugins/tpm/tpm" ]]; then echo "tmux TPM bereits installiert; fahre fort." else echo "Klone tmux TPM ..." mkdir -p "$HOME/.config/tmux/plugins" git clone https://github.com/tmux-plugins/tpm "$HOME/.config/tmux/plugins/tpm" fi } install_tmux_plugins() { local tpm_install="$HOME/.config/tmux/plugins/tpm/bin/install_plugins" if ! command -v tmux >/dev/null 2>&1; then echo "Warnung: tmux nicht installiert; ueberspringe Plugin-Installation (C-Space I beim ersten Start)." return 0 fi if ! command -v git >/dev/null 2>&1; then echo "Warnung: git nicht installiert; ueberspringe tmux Plugin-Installation." return 0 fi if [[ ! -f "$HOME/.config/tmux/tmux.conf" ]]; then echo "tmux.conf noch nicht verlinkt (stow laeuft nach setup.sh); Plugins werden beim ersten tmux-Start bzw. Re-Run installiert (C-Space I)." return 0 fi if [[ ! -x "$tpm_install" ]]; then echo "Warnung: TPM install_plugins nicht gefunden; ueberspringe tmux Plugin-Installation." return 0 fi echo "Installiere tmux-Plugins via TPM ..." "$tpm_install" } add_yazi_git_plugin() { if command -v yazi >/dev/null 2>&1 && command -v ya >/dev/null 2>&1; then if ya pkg list 2>/dev/null | grep -q 'yazi-rs/plugins:git'; then echo "yazi git-Plugin bereits installiert; fahre fort." else echo "Fuege yazi git-Plugin hinzu ..." ya pkg add yazi-rs/plugins:git fi fi } # --------------------------------------------------------------------------- # Main # --------------------------------------------------------------------------- main() { local -a pacman_pkgs=() aur_pkgs=() npm_pkgs=() # Hinweis: multilib, yay und das System-Update werden von # setup/basic/setup.sh uebernommen (laeuft vor term im Makefile). echo "==> Lese Paketliste: $PACKAGES_FILE" read_packages "$PACKAGES_FILE" pacman_pkgs aur_pkgs npm_pkgs install_all_pkgs pacman_pkgs aur_pkgs npm_pkgs set_fish_default_shell install_tmuxifier install_tmux_tpm install_tmux_plugins add_yazi_git_plugin echo "==> Aktualisiere locate-Datenbank ..." sudo updatedb echo "Fertig. Starte ein neues Terminal, damit fish und die Umgebung greifen." } main