hypr overhaul
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
# ---------------------------------------------------------------------------
|
||||
# Hyprland compositor package list for hypr/setup.sh
|
||||
#
|
||||
# Wayland compositor, its ecosystem tools (lockscreen, idle, wallpaper,
|
||||
# notification center, screenshot, launcher) and supporting utilities.
|
||||
# `hyprltm` (network manager) is installed via a post-install hook in
|
||||
# setup.sh since it is not available as a standard pacman/aur package.
|
||||
#
|
||||
# - Lines starting with '#' and blank lines are ignored.
|
||||
# - Use "@pacman", "@aur" or "@npm" markers to switch section.
|
||||
# - The default section is @pacman.
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
@pacman
|
||||
hyprland
|
||||
hyprlauncher
|
||||
xdg-desktop-portal-hyprland
|
||||
hyprpolkitagent
|
||||
pantheon-shortcut-overlay
|
||||
waybar
|
||||
hyprpaper
|
||||
wpaperd
|
||||
wev
|
||||
hyprlock
|
||||
hypridle
|
||||
nwg-drawer
|
||||
wl-clipboard
|
||||
swaync
|
||||
hyprshot
|
||||
rofi
|
||||
|
||||
@aur
|
||||
hyprshutdown
|
||||
hyprtile
|
||||
@@ -0,0 +1,119 @@
|
||||
#!/bin/bash
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PACKAGES_FILE="$SCRIPT_DIR/packages.txt"
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# 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: hyprltm (network manager) via upstream script.
|
||||
# ---------------------------------------------------------------------------
|
||||
install_hyprltm() {
|
||||
if command -v hyprltm >/dev/null 2>&1; then
|
||||
echo "hyprltm bereits installiert; fahre fort."
|
||||
return
|
||||
fi
|
||||
echo "Installiere hyprltm (Network Manager) ..."
|
||||
curl -s https://raw.githubusercontent.com/hyprltm/hyprltm-net/main/setup.sh | bash
|
||||
}
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Post-install: ensure fish PATH includes ~/.local/bin (for hyprltm).
|
||||
# ---------------------------------------------------------------------------
|
||||
add_fish_local_bin_path() {
|
||||
local fish_config="$HOME/.config/fish/config.fish"
|
||||
if [[ -f "$fish_config" ]] && grep -q '\$HOME/.local/bin' "$fish_config"; then
|
||||
echo "fish ~/.local/bin PATH bereits gesetzt; fahre fort."
|
||||
return
|
||||
fi
|
||||
echo "Fuege ~/.local/bin zum fish-PATH hinzu ..."
|
||||
echo 'fish_add_path -m $HOME/.local/bin' >> "$fish_config"
|
||||
}
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Post-install: run Hyprland environment & desktop integration scripts.
|
||||
# ---------------------------------------------------------------------------
|
||||
run_hypr_scripts() {
|
||||
local scripts_dir="$SCRIPT_DIR/../.config/hypr/scripts"
|
||||
|
||||
echo "==> Fuehre ensure-env.sh aus ..."
|
||||
bash "$scripts_dir/ensure-env.sh"
|
||||
|
||||
echo "==> Fuehre portal-host-override.sh aus ..."
|
||||
bash "$scripts_dir/portal-host-override.sh"
|
||||
|
||||
echo "==> Fuehre fix_dolphin_file_associations.sh aus ..."
|
||||
bash "$scripts_dir/fix_dolphin_file_associations.sh"
|
||||
}
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Main
|
||||
# ---------------------------------------------------------------------------
|
||||
main() {
|
||||
echo "==> Lese Paketliste: $PACKAGES_FILE"
|
||||
read_packages
|
||||
|
||||
install_pacman
|
||||
install_aur
|
||||
install_npm
|
||||
|
||||
install_hyprltm
|
||||
add_fish_local_bin_path
|
||||
run_hypr_scripts
|
||||
|
||||
echo "Fertig. Hyprland und das Compositor-Okosystem sind eingerichtet."
|
||||
}
|
||||
|
||||
main
|
||||
Reference in New Issue
Block a user