#!/usr/bin/env bash # NAME: Install base system packages set -euo pipefail AUR_HELPER="paru" if ! command -v $AUR_HELPER &>/dev/null; then echo "[ERROR] $AUR_HELPER not found. Install it first." exit 1 fi echo "Installing organized system packages..." # ═══════════════════════════════════════════════════════════ # 🔧 DETECT HARDWARE # ═══════════════════════════════════════════════════════════ CPU_VENDOR=$(lscpu | grep "Vendor ID" | awk '{print $3}') GPU_INFO=$(lspci | grep -i vga) echo "Detected CPU: $CPU_VENDOR" echo "Detected GPU: $GPU_INFO" # Determine microcode package if [[ "$CPU_VENDOR" == "GenuineIntel" ]]; then MICROCODE="intel-ucode" echo "→ Using Intel microcode" elif [[ "$CPU_VENDOR" == "AuthenticAMD" ]]; then MICROCODE="amd-ucode" echo "→ Using AMD microcode" else MICROCODE="" echo "→ Unknown CPU vendor, skipping microcode" fi # Determine GPU drivers GPU_PACKAGES="" if echo "$GPU_INFO" | grep -qi "amd\|radeon"; then GPU_PACKAGES="xf86-video-amdgpu vulkan-radeon lib32-vulkan-radeon opencl-mesa lib32-opencl-mesa" echo "→ Using AMD GPU drivers" elif echo "$GPU_INFO" | grep -qi "intel"; then GPU_PACKAGES="xf86-video-intel vulkan-intel lib32-vulkan-intel intel-media-driver" echo "→ Using Intel GPU drivers" elif echo "$GPU_INFO" | grep -qi "nvidia"; then GPU_PACKAGES="nvidia nvidia-utils lib32-nvidia-utils nvidia-settings" echo "→ Using NVIDIA drivers (you may want to review this)" else echo "→ Unknown GPU, using generic drivers" fi # ═══════════════════════════════════════════════════════════ # 🔧 SYSTEM BASE # ═══════════════════════════════════════════════════════════ echo "Installing system base..." BASE_PACKAGES="base base-devel linux-cachyos linux-cachyos-headers linux-firmware efibootmgr efitools mkinitcpio grub systemd-boot-manager" if [[ -n "$MICROCODE" ]]; then BASE_PACKAGES="$BASE_PACKAGES $MICROCODE" fi $AUR_HELPER -S --noconfirm --needed $BASE_PACKAGES # ═══════════════════════════════════════════════════════════ # 🌐 NETWORKING & BLUETOOTH # ═══════════════════════════════════════════════════════════ echo "Installing networking..." $AUR_HELPER -S --noconfirm --needed \ networkmanager networkmanager-openvpn network-manager-applet \ dhclient dnsmasq iptables-nft iwd wpa_supplicant wireless-regdb \ bluez-libs blueman openssh # ═══════════════════════════════════════════════════════════ # 🔊 AUDIO & VIDEO # ═══════════════════════════════════════════════════════════ echo "Installing audio/video..." $AUR_HELPER -S --noconfirm --needed \ pipewire pipewire-alsa pipewire-pulse wireplumber \ pavucontrol alsa-firmware alsa-plugins alsa-utils \ gst-libav gst-plugin-pipewire gst-plugins-bad gst-plugins-ugly \ mpv ffmpegthumbnailer # ═══════════════════════════════════════════════════════════ # 🎨 FONTS & THEMES # ═══════════════════════════════════════════════════════════ echo "Installing fonts and themes..." $AUR_HELPER -S --noconfirm --needed \ adobe-source-han-sans-cn-fonts adobe-source-han-sans-jp-fonts \ adobe-source-han-sans-kr-fonts adobe-source-serif-fonts \ awesome-terminal-fonts inter-font noto-fonts noto-fonts-cjk noto-fonts-emoji \ ttf-bitstream-vera ttf-dejavu ttf-fantasque-nerd ttf-fira-code ttf-fira-mono \ ttf-fira-sans ttf-font-awesome-5 ttf-liberation ttf-linux-libertine \ ttf-meslo-nerd ttf-ms-win11-auto ttf-opensans otf-font-awesome-5 otf-libertinus \ papirus-icon-theme rose-pine-gtk-theme # ═══════════════════════════════════════════════════════════ # 💻 DEVELOPMENT TOOLS # ═══════════════════════════════════════════════════════════ echo "Installing development tools..." $AUR_HELPER -S --noconfirm --needed \ git git-lfs git-crypt github-cli lazygit \ go go-task python python-defusedxml python-packaging \ python-protobuf python-pynvim python-pywlroots lua luarocks \ ccls cmake ninja neovim-nightly-bin # ═══════════════════════════════════════════════════════════ # 🛠️ CLI UTILITIES # ═══════════════════════════════════════════════════════════ echo "Installing CLI utilities..." $AUR_HELPER -S --noconfirm --needed \ bat btop duf dysk dust eza fd fzf glances glow httpie ncdu \ plocate ripgrep tealdeer the_silver_searcher tmux wget \ xdg-user-dirs zoxide zellij yazi yq zsh # ═══════════════════════════════════════════════════════════ # 🪟 WINDOW MANAGERS & DESKTOP # ═══════════════════════════════════════════════════════════ echo "Installing window managers..." $AUR_HELPER -S --noconfirm --needed \ swaybg swayfx-git swayidle swaylock-effects waybar \ wlogout wdisplays wl-clipboard rofi-lbonn-wayland-git # ═══════════════════════════════════════════════════════════ # 🌍 GUI APPLICATIONS # ═══════════════════════════════════════════════════════════ echo "Installing GUI applications..." $AUR_HELPER -S --noconfirm --needed \ chromium zen-browser-bin \ legcord-bin slack-desktop teams-for-linux-bin \ obs-studio obsidian sublime-merge dbeaver \ libreoffice-fresh kitty nemo nemo-fileroller # ═══════════════════════════════════════════════════════════ # 📁 SYSTEM UTILITIES # ═══════════════════════════════════════════════════════════ echo "Installing system utilities..." $AUR_HELPER -S --noconfirm --needed \ brightnessctl cronie cups cups-pdf gamemode gvfs gvfs-afc gvfs-google \ gvfs-gphoto2 gvfs-mtp gvfs-nfs gvfs-smb haveged hdparm less lvm2 \ man-db man-pages meld modemmanager mtools mupdf netctl nss-mdns \ ntfs-3g ntp nvme-cli opencl-mesa pacman-contrib pass pika-backup \ pkgfile power-profiles-daemon pv reflector remmina rsync rtkit \ samba seahorse sg3_utils smartmontools snapper solaar steam \ steam-native-runtime syncthing system-config-printer timeshift \ transmission-qt ufw unrar unzip upower usb_modeswitch usbutils \ vi vorta w3m which xdg-desktop-portal xdg-desktop-portal-gnome \ xdg-desktop-portal-gtk xdg-desktop-portal-wlr yad zenity # ═══════════════════════════════════════════════════════════ # 🎮 GAMING & GRAPHICS # ═══════════════════════════════════════════════════════════ echo "Installing gaming and graphics..." GAMING_BASE="lib32-alsa-lib lib32-alsa-plugins lib32-gamemode lib32-libpulse lib32-mesa lib32-openal lib32-vkd3d lib32-vulkan-mesa-layers vkd3d vulkan-mesa-layers vulkan-tools vulkan-validation-layers wine protonup-qt" if [[ -n "$GPU_PACKAGES" ]]; then $AUR_HELPER -S --noconfirm --needed $GAMING_BASE $GPU_PACKAGES else $AUR_HELPER -S --noconfirm --needed $GAMING_BASE fi # ═══════════════════════════════════════════════════════════ # 📱 MOBILE & HARDWARE # ═══════════════════════════════════════════════════════════ echo "Installing hardware support..." $AUR_HELPER -S --noconfirm --needed \ sof-firmware xf86-input-libinput xfsprogs \ xorg-server xorg-xdpyinfo xorg-xhost xorg-xinit xorg-xinput \ xorg-xkill xorg-xrandr xorg-xwayland # ═══════════════════════════════════════════════════════════ # ☁️ CLOUD & DEVOPS # ═══════════════════════════════════════════════════════════ echo "Installing cloud and DevOps tools..." $AUR_HELPER -S --noconfirm --needed \ aws-cli aws-session-manager-plugin insomnia-bin \ kubectl kubectx kubefwd-bin ngrok postgresql # ═══════════════════════════════════════════════════════════ # 📚 DOCUMENT & PRODUCTIVITY # ═══════════════════════════════════════════════════════════ echo "Installing document tools..." $AUR_HELPER -S --noconfirm --needed \ pandoc-cli texinfo wkhtmltopdf-bin zathura zathura-pdf-mupdf \ swappy wf-recorder # ═══════════════════════════════════════════════════════════ # 🔐 SECURITY & ENCRYPTION # ═══════════════════════════════════════════════════════════ echo "Installing security tools..." $AUR_HELPER -S --noconfirm --needed \ yubico-authenticator-bin yubikey-manager-qt # ═══════════════════════════════════════════════════════════ # 📦 PACKAGE MANAGERS & MISC # ═══════════════════════════════════════════════════════════ echo "Installing package managers and misc..." $AUR_HELPER -S --noconfirm --needed \ pyenv stow sudo watchman-bin wimlib tldr --update