term: rework of setup script
This commit is contained in:
@@ -15,7 +15,7 @@ Only entries that would be missed without explicit help are included.
|
|||||||
|
|
||||||
| Task | Command | Why it matters |
|
| Task | Command | Why it matters |
|
||||||
|------|---------|----------------|
|
|------|---------|----------------|
|
||||||
| **Install required programs** | `bash .install_skripte/install_terminal_pcks.sh` <br>`bash .install_skripte/install_basic_pcks.sh` <br>`bash .install_skripte/install_hypr_pcks.sh` <br>`bash .install_skripte/install_kreation_pcks.sh` | These scripts install Neovim, hyprland, VST runtime, and other utilities. |
|
| **Install required programs** | `bash term/setup.sh` <br>`bash .install_skripte/install_basic_pcks.sh` <br>`bash .install_skripte/install_hypr_pcks.sh` <br>`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` <br>`ln -s ~/.dotfiles/term/.config/nvim ~/.config/nvim` | The repository expects the configs to live in `~/.config`. |
|
| **Link configuration directories** | `ln -s ~/.dotfiles/hypr/.config/hypr ~/.config/hypr` <br>`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. |
|
| **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. |
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
# setup ist ein Kommando-Target (keine Datei) und soll immer ausgeführt werden.
|
# setup ist ein Kommando-Target (keine Datei) und soll immer ausgeführt werden.
|
||||||
.PHONY: basic
|
.PHONY: basic
|
||||||
|
|
||||||
termn:
|
term:
|
||||||
bash _install_skripte_install_terminal_pcks.sh
|
bash term/setup.sh
|
||||||
stow term
|
stow term
|
||||||
basic: term
|
basic: term
|
||||||
bash _install_skripte_install_basic_pcks.sh
|
bash _install_skripte_install_basic_pcks.sh
|
||||||
|
|||||||
@@ -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
|
|
||||||
@@ -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
|
||||||
Executable
+154
@@ -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
|
||||||
Reference in New Issue
Block a user