base 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197
  1. #!/usr/bin/env bash
  2. # NAME: Install base system packages (organized and cleaned)
  3. set -euo pipefail
  4. AUR_HELPER="paru"
  5. if ! command -v $AUR_HELPER &>/dev/null; then
  6. echo "[ERROR] $AUR_HELPER not found. Install it first."
  7. exit 1
  8. fi
  9. echo "Installing organized system packages..."
  10. # ═══════════════════════════════════════════════════════════
  11. # 🔧 DETECT HARDWARE
  12. # ═══════════════════════════════════════════════════════════
  13. CPU_VENDOR=$(lscpu | grep "Vendor ID" | awk '{print $3}')
  14. GPU_INFO=$(lspci | grep -i vga)
  15. echo "Detected CPU: $CPU_VENDOR"
  16. echo "Detected GPU: $GPU_INFO"
  17. # Determine microcode package
  18. if [[ "$CPU_VENDOR" == "GenuineIntel" ]]; then
  19. MICROCODE="intel-ucode"
  20. echo "→ Using Intel microcode"
  21. elif [[ "$CPU_VENDOR" == "AuthenticAMD" ]]; then
  22. MICROCODE="amd-ucode"
  23. echo "→ Using AMD microcode"
  24. else
  25. MICROCODE=""
  26. echo "→ Unknown CPU vendor, skipping microcode"
  27. fi
  28. # Determine GPU drivers
  29. GPU_PACKAGES=""
  30. if echo "$GPU_INFO" | grep -qi "amd\|radeon"; then
  31. GPU_PACKAGES="xf86-video-amdgpu vulkan-radeon lib32-vulkan-radeon opencl-mesa lib32-opencl-mesa"
  32. echo "→ Using AMD GPU drivers"
  33. elif echo "$GPU_INFO" | grep -qi "intel"; then
  34. GPU_PACKAGES="xf86-video-intel vulkan-intel lib32-vulkan-intel intel-media-driver"
  35. echo "→ Using Intel GPU drivers"
  36. elif echo "$GPU_INFO" | grep -qi "nvidia"; then
  37. GPU_PACKAGES="nvidia nvidia-utils lib32-nvidia-utils nvidia-settings"
  38. echo "→ Using NVIDIA drivers (you may want to review this)"
  39. else
  40. echo "→ Unknown GPU, using generic drivers"
  41. fi
  42. # ═══════════════════════════════════════════════════════════
  43. # 🔧 SYSTEM BASE
  44. # ═══════════════════════════════════════════════════════════
  45. echo "Installing system base..."
  46. BASE_PACKAGES="base base-devel linux-cachyos linux-cachyos-headers linux-firmware efibootmgr efitools mkinitcpio grub systemd-boot-manager"
  47. if [[ -n "$MICROCODE" ]]; then
  48. BASE_PACKAGES="$BASE_PACKAGES $MICROCODE"
  49. fi
  50. $AUR_HELPER -S --noconfirm --needed $BASE_PACKAGES
  51. # ═══════════════════════════════════════════════════════════
  52. # 🌐 NETWORKING & BLUETOOTH
  53. # ═══════════════════════════════════════════════════════════
  54. echo "Installing networking..."
  55. $AUR_HELPER -S --noconfirm --needed \
  56. networkmanager networkmanager-openvpn network-manager-applet \
  57. dhclient dnsmasq iptables-nft iwd wpa_supplicant wireless-regdb \
  58. bluez-libs blueman openssh
  59. # ═══════════════════════════════════════════════════════════
  60. # 🔊 AUDIO & VIDEO
  61. # ═══════════════════════════════════════════════════════════
  62. echo "Installing audio/video..."
  63. $AUR_HELPER -S --noconfirm --needed \
  64. pipewire pipewire-alsa pipewire-pulse wireplumber \
  65. pavucontrol alsa-firmware alsa-plugins alsa-utils \
  66. gst-libav gst-plugin-pipewire gst-plugins-bad gst-plugins-ugly \
  67. mpv ffmpegthumbnailer
  68. # ═══════════════════════════════════════════════════════════
  69. # 🎨 FONTS & THEMES
  70. # ═══════════════════════════════════════════════════════════
  71. echo "Installing fonts and themes..."
  72. $AUR_HELPER -S --noconfirm --needed \
  73. adobe-source-han-sans-cn-fonts adobe-source-han-sans-jp-fonts \
  74. adobe-source-han-sans-kr-fonts adobe-source-serif-fonts \
  75. awesome-terminal-fonts inter-font noto-fonts noto-fonts-cjk noto-fonts-emoji \
  76. ttf-bitstream-vera ttf-dejavu ttf-fantasque-nerd ttf-fira-code ttf-fira-mono \
  77. ttf-fira-sans ttf-font-awesome-5 ttf-liberation ttf-linux-libertine \
  78. ttf-meslo-nerd ttf-ms-win11-auto ttf-opensans otf-font-awesome-5 otf-libertinus \
  79. papirus-icon-theme rose-pine-gtk-theme
  80. # ═══════════════════════════════════════════════════════════
  81. # 💻 DEVELOPMENT TOOLS
  82. # ═══════════════════════════════════════════════════════════
  83. echo "Installing development tools..."
  84. $AUR_HELPER -S --noconfirm --needed \
  85. git git-lfs git-crypt github-cli lazygit \
  86. go go-task rust python python-defusedxml python-packaging \
  87. python-protobuf python-pynvim python-pywlroots lua luarocks \
  88. ccls cmake ninja neovim-nightly-bin
  89. # ═══════════════════════════════════════════════════════════
  90. # 🛠️ CLI UTILITIES
  91. # ═══════════════════════════════════════════════════════════
  92. echo "Installing CLI utilities..."
  93. $AUR_HELPER -S --noconfirm --needed \
  94. bat btop duf dust eza fd fzf glances glow httpie micro ncdu \
  95. plocate ripgrep tealdeer the_silver_searcher tmux wget \
  96. xdg-user-dirs zoxide zellij yazi yq zsh
  97. # ═══════════════════════════════════════════════════════════
  98. # 🪟 WINDOW MANAGERS & DESKTOP
  99. # ═══════════════════════════════════════════════════════════
  100. echo "Installing window managers..."
  101. $AUR_HELPER -S --noconfirm --needed \
  102. swaybg swayfx-git swayidle swaylock-effects waybar \
  103. wlogout wdisplays wl-clipboard rofi-lbonn-wayland-git
  104. # ═══════════════════════════════════════════════════════════
  105. # 🌍 GUI APPLICATIONS
  106. # ═══════════════════════════════════════════════════════════
  107. echo "Installing GUI applications..."
  108. $AUR_HELPER -S --noconfirm --needed \
  109. chromium zen-browser-bin \
  110. legcord-bin slack-desktop teams-for-linux-bin \
  111. obs-studio obsidian sublime-merge dbeaver \
  112. libreoffice-fresh keepass kitty nemo nemo-fileroller
  113. # ═══════════════════════════════════════════════════════════
  114. # 📁 SYSTEM UTILITIES
  115. # ═══════════════════════════════════════════════════════════
  116. echo "Installing system utilities..."
  117. $AUR_HELPER -S --noconfirm --needed \
  118. brightnessctl cronie cups cups-pdf gamemode gvfs gvfs-afc gvfs-google \
  119. gvfs-gphoto2 gvfs-mtp gvfs-nfs gvfs-smb haveged hdparm less lvm2 \
  120. man-db man-pages meld modemmanager mtools mupdf netctl nss-mdns \
  121. ntfs-3g ntp nvme-cli opencl-mesa pacman-contrib pass pika-backup \
  122. pkgfile power-profiles-daemon pv reflector remmina rsync rtkit \
  123. samba seahorse sg3_utils smartmontools snapper solaar steam \
  124. steam-native-runtime syncthing system-config-printer timeshift \
  125. transmission-qt ufw unrar unzip upower usb_modeswitch usbutils \
  126. vi vorta w3m which xdg-desktop-portal xdg-desktop-portal-gnome \
  127. xdg-desktop-portal-gtk xdg-desktop-portal-wlr yad zenity
  128. # ═══════════════════════════════════════════════════════════
  129. # 🎮 GAMING & GRAPHICS
  130. # ═══════════════════════════════════════════════════════════
  131. echo "Installing gaming and graphics..."
  132. 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"
  133. if [[ -n "$GPU_PACKAGES" ]]; then
  134. $AUR_HELPER -S --noconfirm --needed $GAMING_BASE $GPU_PACKAGES
  135. else
  136. $AUR_HELPER -S --noconfirm --needed $GAMING_BASE
  137. fi
  138. # ═══════════════════════════════════════════════════════════
  139. # 📱 MOBILE & HARDWARE
  140. # ═══════════════════════════════════════════════════════════
  141. echo "Installing hardware support..."
  142. $AUR_HELPER -S --noconfirm --needed \
  143. sof-firmware xf86-input-libinput xfsprogs \
  144. xorg-server xorg-xdpyinfo xorg-xhost xorg-xinit xorg-xinput \
  145. xorg-xkill xorg-xrandr xorg-xwayland
  146. # ═══════════════════════════════════════════════════════════
  147. # ☁️ CLOUD & DEVOPS
  148. # ═══════════════════════════════════════════════════════════
  149. echo "Installing cloud and DevOps tools..."
  150. $AUR_HELPER -S --noconfirm --needed \
  151. ansible aws-cli aws-session-manager-plugin helm hugo insomnia-bin \
  152. kubectl kubectx kubefwd-bin nomad ngrok postgresql
  153. # ═══════════════════════════════════════════════════════════
  154. # 📚 DOCUMENT & PRODUCTIVITY
  155. # ═══════════════════════════════════════════════════════════
  156. echo "Installing document tools..."
  157. $AUR_HELPER -S --noconfirm --needed \
  158. pandoc-cli texinfo wkhtmltopdf-bin zathura zathura-pdf-mupdf \
  159. swappy wf-recorder
  160. # ═══════════════════════════════════════════════════════════
  161. # 🔐 SECURITY & ENCRYPTION
  162. # ═══════════════════════════════════════════════════════════
  163. echo "Installing security tools..."
  164. $AUR_HELPER -S --noconfirm --needed \
  165. yubico-authenticator-bin yubikey-manager-qt
  166. # ═══════════════════════════════════════════════════════════
  167. # 📦 PACKAGE MANAGERS & MISC
  168. # ═══════════════════════════════════════════════════════════
  169. echo "Installing package managers and misc..."
  170. $AUR_HELPER -S --noconfirm --needed \
  171. pyenv rye stow sudo watchman-bin wimlib