diff --git a/AGENTS.md b/AGENTS.md
index 435e720..8837464 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -15,7 +15,7 @@ Only entries that would be missed without explicit help are included.
| Task | Command | Why it matters |
|------|---------|----------------|
-| **Install required programs** | `bash .install_skripte/install_terminal_pcks.sh`
`bash .install_skripte/install_basic_pcks.sh`
`bash .install_skripte/install_hypr_pcks.sh`
`bash .install_skripte/install_kreation_pcks.sh` | These scripts install Neovim, hyprland, VST runtime, and other utilities. |
+| **Install required programs** | `bash term/setup.sh`
`bash .install_skripte/install_basic_pcks.sh`
`bash .install_skripte/install_hypr_pcks.sh`
`bash .install_skripte/install_kreation_pcks.sh` | These scripts install Neovim, hyprland, VST runtime, and other utilities. Edit `term/packages.txt` to add/remove terminal packages. |
| **Link configuration directories** | `ln -s ~/.dotfiles/hypr/.config/hypr ~/.config/hypr`
`ln -s ~/.dotfiles/term/.config/nvim ~/.config/nvim` | The repository expects the configs to live in `~/.config`. |
| **Add VST plugin** | Copy `kreation/.vst3/MT-PowerDrumKit.vst3` into your DAW’s plugins folder (usually `~/.vst`). | The repo contains a pre‑built VST for use in audio software. |
diff --git a/Makefile b/Makefile
index 6a2eb22..4ef81fd 100644
--- a/Makefile
+++ b/Makefile
@@ -1,8 +1,8 @@
# setup ist ein Kommando-Target (keine Datei) und soll immer ausgeführt werden.
.PHONY: basic
-termn:
- bash _install_skripte_install_terminal_pcks.sh
+term:
+ bash term/setup.sh
stow term
basic: term
bash _install_skripte_install_basic_pcks.sh
diff --git a/_install_skripte/install_terminal_pcks.sh b/_install_skripte/install_terminal_pcks.sh
deleted file mode 100755
index fa30103..0000000
--- a/_install_skripte/install_terminal_pcks.sh
+++ /dev/null
@@ -1,73 +0,0 @@
-#!/bin/bash
-
-# multilib aktivieren in /etc/pacman.conf
-sudo sed -i.bak '/^#\[multilib\]/,+1 s/^#//' /etc/pacman.conf
-# Für Noobs wie mich
-# - erstellt Sicherheitskopie pacman.conf.bak vor der Änderung
-# - sucht nach "[multilib]"
-# - bezieht die nächste Zeile mit ein
-# - Ersetzt ^# mit nüscht -> Kommentar entfernt :-)
-
-sudo pacman -Syu
-
-# Install yay
-if pacman -Q yay &>/dev/null; then
- echo "yay bereits installiert; fahre fort."
-elif pacman -Si yay &>/dev/null; then
- echo "Installiere yay mit pacman ..."
- sudo pacman -S --needed yay
-else
- sudo pacman -S --needed base-devel git
- echo "installiere yay via git ..."
- git clone https://aur.archlinux.org/yay.git
- (
- cd yay || {
- echo "Fehler: CD in yay-Verzeichnis fehlgeschlagen";
- exit 1;
- }
- makepkg -si
- )
- rm -rf yay
-fi
-
-sudo pacman -S --needed \
- fish \
- vim \
- nvim \
- openssh \
- rclone \
- rsync \
- unison \
- stow \
- nodejs \
- npm \
- starship \
- fastfetch \
- tree-sitter-cli \
- python \
- python-pip \
- extra/ttf-jetbrains-mono-nerd \
- unzip \
- ruff \
- python-ruff \
- python-debugpy \
- chromium \
- selene \
- opencode \
- tmux \
- yazi \
- zoxide \
- fzf \
- locate \
- ttf-jetbrains-mono-nerd \
- ttf-font-awesome
-
-# fish as standard terminal
-chsh -s /usr/bin/fish
-
-git clone https://github.com/jimeh/tmuxifier.git ~/.tmuxifier
-
-npm install -g vscode-js-debug
-npm install -g eslint_d
-ya pkg add yazi-rs/plugins:git
-sudo updatedb
diff --git a/term/packages.txt b/term/packages.txt
new file mode 100644
index 0000000..685dd3e
--- /dev/null
+++ b/term/packages.txt
@@ -0,0 +1,46 @@
+# ---------------------------------------------------------------------------
+# Terminal package list for term/setup.sh
+#
+# Maintenance:
+# - Add / remove packages on separate lines.
+# - Lines starting with '#' and blank lines are ignored.
+# - Use "@pacman", "@aur" or "@npm" markers to switch section.
+# - The default section is @pacman.
+# ---------------------------------------------------------------------------
+
+@pacman
+fish
+extra/kitty
+neovim
+openssh
+rclone
+rsync
+unison
+stow
+nodejs
+npm
+starship
+fastfetch
+tree-sitter-cli
+python
+python-pip
+unzip
+ruff
+python-ruff
+python-debugpy
+chromium
+selene
+tmux
+yazi
+zoxide
+fzf
+locate
+ttf-jetbrains-mono-nerd
+ttf-font-awesome
+
+@aur
+opencode
+
+@npm
+eslint_d
+vscode-js-debug
diff --git a/term/setup.sh b/term/setup.sh
new file mode 100755
index 0000000..b491dad
--- /dev/null
+++ b/term/setup.sh
@@ -0,0 +1,154 @@
+#!/bin/bash
+set -euo pipefail
+
+SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
+PACKAGES_FILE="$SCRIPT_DIR/packages.txt"
+
+# ---------------------------------------------------------------------------
+# Enable multilib in /etc/pacman.conf (with a safety backup)
+# ---------------------------------------------------------------------------
+enable_multilib() {
+ sudo sed -i.bak '/^#\[multilib\]/,+1 s/^#//' /etc/pacman.conf
+}
+
+# ---------------------------------------------------------------------------
+# Ensure yay (AUR helper) is installed.
+# ---------------------------------------------------------------------------
+install_yay() {
+ if pacman -Q yay &>/dev/null; then
+ echo "yay bereits installiert; fahre fort."
+ return
+ fi
+ if pacman -Si yay &>/dev/null; then
+ echo "Installiere yay mit pacman ..."
+ sudo pacman -S --needed yay
+ return
+ fi
+ echo "installiere yay via git ..."
+ sudo pacman -S --needed base-devel git
+ local tmp
+ tmp="$(mktemp -d)"
+ git clone https://aur.archlinux.org/yay.git "$tmp/yay"
+ (
+ cd "$tmp/yay"
+ makepkg -si
+ )
+ rm -rf "$tmp"
+}
+
+# ---------------------------------------------------------------------------
+# Read packages.txt, split into pacman / aur / npm sections.
+# ---------------------------------------------------------------------------
+read_packages() {
+ local section="pacman"
+ local current
+ current=""
+ while IFS= read -r line || [[ -n "$line" ]]; do
+ current="${line%%#*}"
+ current="${current##*( )}"
+ current="${current%%*( )}"
+ [[ -z "$current" ]] && continue
+ case "$current" in
+ @pacman) section="pacman" ;;
+ @aur) section="aur" ;;
+ @npm) section="npm" ;;
+ *)
+ case "$section" in
+ pacman) pacman_pkgs+=("$current") ;;
+ aur) aur_pkgs+=("$current") ;;
+ npm) npm_pkgs+=("$current") ;;
+ esac
+ ;;
+ esac
+ done < "$PACKAGES_FILE"
+}
+
+declare -a pacman_pkgs=() aur_pkgs=() npm_pkgs=()
+
+# ---------------------------------------------------------------------------
+# Install sections.
+# ---------------------------------------------------------------------------
+install_pacman() {
+ if ((${#pacman_pkgs[@]})); then
+ echo "==> Installiere Pacman-Pakete: ${pacman_pkgs[*]}"
+ yay -S --needed "${pacman_pkgs[@]}"
+ fi
+}
+
+install_aur() {
+ if ((${#aur_pkgs[@]})); then
+ echo "==> Installiere AUR-Pakete: ${aur_pkgs[*]}"
+ yay -S --needed "${aur_pkgs[@]}"
+ fi
+}
+
+install_npm() {
+ if ((${#npm_pkgs[@]})); then
+ echo "==> Installiere globale npm-Pakete: ${npm_pkgs[*]}"
+ npm install -g "${npm_pkgs[@]}"
+ fi
+}
+
+# ---------------------------------------------------------------------------
+# 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
+}
+
+add_yazi_git_plugin() {
+ if command -v yazi >/dev/null 2>&1 && command -v ya >/dev/null 2>&1; then
+ echo "Fuege yazi git-Plugin hinzu ..."
+ ya pkg add yazi-rs/plugins:git
+ fi
+}
+
+# ---------------------------------------------------------------------------
+# Main
+# ---------------------------------------------------------------------------
+main() {
+ echo "==> Aktiviere multilib ..."
+ enable_multilib
+
+ echo "==> System aktualisieren ..."
+ sudo pacman -Syu
+
+ echo "==> Sicherstelle yay ..."
+ install_yay
+
+ echo "==> Lese Paketliste: $PACKAGES_FILE"
+ read_packages
+
+ install_pacman
+ install_aur
+ install_npm
+
+ set_fish_default_shell
+ install_tmuxifier
+ add_yazi_git_plugin
+
+ echo "==> Aktualisiere locate-Datenbank ..."
+ sudo updatedb
+
+ echo "Fertig. Starte ein neues Terminal, damit fish und die Umgebung greifen."
+}
+
+main