#!/bin/bash # run_once_20-install-gui.sh # Hyprland and all other GUI/desktop environment packages set -euo pipefail SYS="$(chezmoi data --format=json 2>/dev/null | jq -r '.system // "desktop"')" DISTRO_ID="$(chezmoi data --format=json 2>/dev/null | jq -r '.chezmoi.osRelease.id // empty')" if [ "$SYS" = "server" ]; then echo ">>> [gui] system=server, skipping" exit 0 fi case "$DISTRO_ID" in arch) echo ">>> [gui] arch, system=$SYS" sudo pacman -S --noconfirm --needed \ noto-fonts noto-fonts-cjk noto-fonts-emoji ttf-font-awesome nerd-fonts \ pipewire wireplumber pipewire-alsa pipewire-audio pipewire-jack \ pipewire-pulse gst-plugin-pipewire qt6-multimedia \ network-manager-applet \ bluez bluez-utils blueman gnome-bluetooth-3.0 \ cups cups-pdf cups-pk-helper \ qt5ct qt6ct \ papirus-icon-theme breeze-cursors adw-gtk-theme \ brightnessctl playerctl libnotify mediainfo btop \ fprintd kimageformats \ cliphist wl-clipboard \ polkit-kde-agent xdg-desktop-portal-hyprland gnome-keyring \ hyprland greetd ghostty yay -S --noconfirm greetd-dms-greeter-git dankcalendar-git vesktop-git sudo -v && curl -fsSL https://install.danklinux.com | sh -s -- -c hyprland -t ghostty --include-deps dms-greeter -y fi ;; ubuntu) echo ">>> [gui] ubuntu, system=$SYS" echo ">>> [gui] ubuntu, no GUI packages" ;; *) echo ">>> [gui] unsupported distro: ${DISTRO_ID:-unknown}, skipping" exit 0 ;; esac echo ">>> [gui] done"