|
@@ -1,199 +1,237 @@
|
|
|
#!/usr/bin/env bash
|
|
#!/usr/bin/env bash
|
|
|
-# NAME: Install base system packages
|
|
|
|
|
|
|
+# NAME: Install base system packages with hardware detection
|
|
|
|
|
|
|
|
set -euo pipefail
|
|
set -euo pipefail
|
|
|
|
|
|
|
|
-AUR_HELPER="paru"
|
|
|
|
|
-
|
|
|
|
|
-if ! command -v $AUR_HELPER &>/dev/null; then
|
|
|
|
|
- echo "[ERROR] $AUR_HELPER not found. Install it first."
|
|
|
|
|
|
|
+# Source common functions
|
|
|
|
|
+source "$(dirname "$0")/../common.sh" || {
|
|
|
|
|
+ echo "[ERROR] Could not source common.sh" >&2
|
|
|
exit 1
|
|
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 sudo stow 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 watchman-bin wimlib
|
|
|
|
|
-
|
|
|
|
|
-tldr --update
|
|
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+check_requirements() {
|
|
|
|
|
+ if ! command_exists paru; then
|
|
|
|
|
+ log_error "paru not found. Install it first"
|
|
|
|
|
+ exit 1
|
|
|
|
|
+ fi
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+detect_hardware() {
|
|
|
|
|
+ local cpu_vendor gpu_info microcode gpu_packages
|
|
|
|
|
+
|
|
|
|
|
+ cpu_vendor=$(lscpu | grep "Vendor ID" | awk '{print $3}')
|
|
|
|
|
+ gpu_info=$(lspci | grep -i vga)
|
|
|
|
|
+
|
|
|
|
|
+ log_info "Detected CPU: $cpu_vendor"
|
|
|
|
|
+ log_info "Detected GPU: $gpu_info"
|
|
|
|
|
+
|
|
|
|
|
+ # Determine microcode package
|
|
|
|
|
+ case "$cpu_vendor" in
|
|
|
|
|
+ "GenuineIntel")
|
|
|
|
|
+ microcode="intel-ucode"
|
|
|
|
|
+ log_info "Using Intel microcode"
|
|
|
|
|
+ ;;
|
|
|
|
|
+ "AuthenticAMD")
|
|
|
|
|
+ microcode="amd-ucode"
|
|
|
|
|
+ log_info "Using AMD microcode"
|
|
|
|
|
+ ;;
|
|
|
|
|
+ *)
|
|
|
|
|
+ microcode=""
|
|
|
|
|
+ log_warn "Unknown CPU vendor, skipping microcode"
|
|
|
|
|
+ ;;
|
|
|
|
|
+ esac
|
|
|
|
|
+
|
|
|
|
|
+ # 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"
|
|
|
|
|
+ log_info "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"
|
|
|
|
|
+ log_info "Using Intel GPU drivers"
|
|
|
|
|
+ elif echo "$gpu_info" | grep -qi "nvidia"; then
|
|
|
|
|
+ gpu_packages="nvidia nvidia-utils lib32-nvidia-utils nvidia-settings"
|
|
|
|
|
+ log_info "Using NVIDIA drivers"
|
|
|
|
|
+ else
|
|
|
|
|
+ log_warn "Unknown GPU, using generic drivers"
|
|
|
|
|
+ fi
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+install_base_system() {
|
|
|
|
|
+ log_info "Installing system base packages"
|
|
|
|
|
+
|
|
|
|
|
+ local base_packages="base base-devel sudo stow linux-cachyos linux-cachyos-headers linux-firmware efibootmgr efitools mkinitcpio grub systemd-boot-manager"
|
|
|
|
|
+
|
|
|
|
|
+ if [[ -n "$microcode" ]]; then
|
|
|
|
|
+ base_packages="$base_packages $microcode"
|
|
|
|
|
+ fi
|
|
|
|
|
+
|
|
|
|
|
+ paru -S --needed --overwrite="*" $base_packages
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+install_networking() {
|
|
|
|
|
+ log_info "Installing networking packages"
|
|
|
|
|
+
|
|
|
|
|
+ paru -S --needed \
|
|
|
|
|
+ networkmanager networkmanager-openvpn network-manager-applet \
|
|
|
|
|
+ dhclient dnsmasq iptables-nft iwd wpa_supplicant wireless-regdb \
|
|
|
|
|
+ bluez-libs blueman openssh
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+install_audio_video() {
|
|
|
|
|
+ log_info "Installing audio and video packages"
|
|
|
|
|
+
|
|
|
|
|
+ paru -S --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
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+install_fonts_themes() {
|
|
|
|
|
+ log_info "Installing fonts and themes"
|
|
|
|
|
+
|
|
|
|
|
+ paru -S --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
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+install_development() {
|
|
|
|
|
+ log_info "Installing development tools"
|
|
|
|
|
+
|
|
|
|
|
+ paru -S --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
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+install_cli_utilities() {
|
|
|
|
|
+ log_info "Installing CLI utilities"
|
|
|
|
|
+
|
|
|
|
|
+ paru -S --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 yazi yq zsh
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+install_window_managers() {
|
|
|
|
|
+ log_info "Installing window managers and desktop environment"
|
|
|
|
|
+
|
|
|
|
|
+ paru -S --needed \
|
|
|
|
|
+ swaybg swayfx-git swayidle swaylock-effects waybar \
|
|
|
|
|
+ wlogout wdisplays wl-clipboard rofi-lbonn-wayland-git
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+install_gui_applications() {
|
|
|
|
|
+ log_info "Installing GUI applications"
|
|
|
|
|
+
|
|
|
|
|
+ paru -S --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
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+install_system_utilities() {
|
|
|
|
|
+ log_info "Installing system utilities"
|
|
|
|
|
+
|
|
|
|
|
+ paru -S --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 \
|
|
|
|
|
+ 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
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+install_gaming_graphics() {
|
|
|
|
|
+ log_info "Installing gaming and graphics packages"
|
|
|
|
|
+
|
|
|
|
|
+ local 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
|
|
|
|
|
+ paru -S --needed $gaming_base $gpu_packages
|
|
|
|
|
+ else
|
|
|
|
|
+ paru -S --needed $gaming_base
|
|
|
|
|
+ fi
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+install_hardware_support() {
|
|
|
|
|
+ log_info "Installing hardware support"
|
|
|
|
|
+
|
|
|
|
|
+ paru -S --needed \
|
|
|
|
|
+ sof-firmware xf86-input-libinput xfsprogs \
|
|
|
|
|
+ xorg-server xorg-xdpyinfo xorg-xhost xorg-xinit xorg-xinput \
|
|
|
|
|
+ xorg-xkill xorg-xrandr xorg-xwayland
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+install_cloud_devops() {
|
|
|
|
|
+ log_info "Installing cloud and DevOps tools"
|
|
|
|
|
+
|
|
|
|
|
+ paru -S --needed \
|
|
|
|
|
+ aws-cli aws-session-manager-plugin insomnia-bin \
|
|
|
|
|
+ kubectl kubectx kubefwd-bin ngrok postgresql
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+install_document_tools() {
|
|
|
|
|
+ log_info "Installing document and productivity tools"
|
|
|
|
|
+
|
|
|
|
|
+ paru -S --needed \
|
|
|
|
|
+ pandoc-cli texinfo wkhtmltopdf-bin zathura zathura-pdf-mupdf \
|
|
|
|
|
+ swappy wf-recorder
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+install_security_tools() {
|
|
|
|
|
+ log_info "Installing security tools"
|
|
|
|
|
+
|
|
|
|
|
+ paru -S --needed \
|
|
|
|
|
+ yubico-authenticator-bin yubikey-manager-qt
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+install_misc_packages() {
|
|
|
|
|
+ log_info "Installing miscellaneous packages"
|
|
|
|
|
+
|
|
|
|
|
+ paru -S --needed \
|
|
|
|
|
+ pyenv watchman-bin wimlib \
|
|
|
|
|
+ slurp grim swaync gum nwg-look lxsession colordiff
|
|
|
|
|
+
|
|
|
|
|
+ log_info "Updating tldr database"
|
|
|
|
|
+ tldr --update
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+main() {
|
|
|
|
|
+ init_script
|
|
|
|
|
+
|
|
|
|
|
+ check_requirements
|
|
|
|
|
+ detect_hardware
|
|
|
|
|
+
|
|
|
|
|
+ install_base_system
|
|
|
|
|
+ install_networking
|
|
|
|
|
+ install_audio_video
|
|
|
|
|
+ install_fonts_themes
|
|
|
|
|
+ install_development
|
|
|
|
|
+ install_cli_utilities
|
|
|
|
|
+ install_window_managers
|
|
|
|
|
+ install_gui_applications
|
|
|
|
|
+ install_system_utilities
|
|
|
|
|
+ install_gaming_graphics
|
|
|
|
|
+ install_hardware_support
|
|
|
|
|
+ install_cloud_devops
|
|
|
|
|
+ install_document_tools
|
|
|
|
|
+ install_security_tools
|
|
|
|
|
+ install_misc_packages
|
|
|
|
|
+
|
|
|
|
|
+ finish_script 0
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+main "$@"
|