Skip to content

Instantly share code, notes, and snippets.

@nick-kravchenko
Created April 22, 2026 10:58
Show Gist options
  • Select an option

  • Save nick-kravchenko/ffcfaaad4534715a8d23d36e22b6c6ee to your computer and use it in GitHub Desktop.

Select an option

Save nick-kravchenko/ffcfaaad4534715a8d23d36e22b6c6ee to your computer and use it in GitHub Desktop.
fresh arch install
#!/usr/bin/env bash
set -Eeuo pipefail
SCRIPT_DIR="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
PKG_FILE="${1:-$SCRIPT_DIR/pkglist-arch-final.txt}"
if ! command -v pacman >/dev/null 2>&1; then
echo "pacman not found"
exit 1
fi
if [[ ! -f "$PKG_FILE" ]]; then
echo "Package list not found: $PKG_FILE"
exit 1
fi
if grep -qE '^lib32-|^steam$' "$PKG_FILE"; then
if ! grep -Eq '^[[:space:]]*\[multilib\]' /etc/pacman.conf; then
echo "multilib repo seems disabled in /etc/pacman.conf"
echo "Enable [multilib] first, then run this script again."
exit 1
fi
fi
mapfile -t packages < <(grep -vE '^[[:space:]]*($|#)' "$PKG_FILE")
if [[ ${#packages[@]} -eq 0 ]]; then
echo "No packages found in $PKG_FILE"
exit 1
fi
echo "Updating package databases and system..."
sudo pacman -Syu
echo "Installing ${#packages[@]} packages from: $PKG_FILE"
sudo pacman -S --needed "${packages[@]}"
echo "Done."
linux
nvidia-open
linux-headers
accountsservice
alacritty
alsa-firmware
alsa-plugins
alsa-utils
ark
awesome-terminal-fonts
base
base-devel
bash-completion
bind
bluedevil
bluez
bluez-hid2hci
bluez-libs
bluez-obex
bluez-utils
breeze-gtk
btop
btrfs-progs
cantarell-fonts
char-white
chromium
cpupower
cryptsetup
device-mapper
diffutils
discord
dmidecode
dmraid
dnsmasq
dolphin
dosfstools
duf
e2fsprogs
efibootmgr
efitools
egl-wayland
ethtool
exfatprogs
f2fs-tools
fastfetch
ffmpegthumbnailer
ffmpegthumbs
filelight
firefox
flatpak
fsarchiver
fwupd
git
glances
grub
gst-libav
gst-plugin-pipewire
gst-plugins-bad
gst-plugins-ugly
gwenview
haruna
hdparm
hwdetect
hwinfo
inetutils
intel-ucode
iptables
iwd
jfsutils
kate
kcalc
kde-gtk-config
kdeconnect
kdegraphics-thumbnailers
kdeplasma-addons
kdialog
kinfocenter
kio-admin
konsole
kscreen
kwallet-pam
kwalletmanager
less
lib32-nvidia-utils
lib32-opencl-nvidia
lib32-vulkan-icd-loader
libdvdcss
libgsf
libopenraw
libva-nvidia-driver
linux-firmware
logrotate
lsb-release
lsscsi
lvm2
man-db
man-pages
mdadm
meld
mesa-utils
micro
mkinitcpio
modemmanager
mtools
nano
nano-syntax-highlighting
netctl
networkmanager
networkmanager-openvpn
nfs-utils
nilfs-utils
noto-fonts
noto-fonts-cjk
noto-fonts-emoji
nss-mdns
nvidia-settings
nvidia-utils
nvm
obs-studio
opencl-nvidia
openssh
os-prober
pacman-contrib
partitionmanager
pavucontrol
perl
phonon-qt6-vlc
pipewire-alsa
pipewire-pulse
pkgfile
plasma-browser-integration
plasma-desktop
plasma-firewall
plasma-login-manager
plasma-nm
plasma-pa
plasma-systemmonitor
plasma-thunderbolt
plocate
plymouth
plymouth-kcm
poppler-glib
power-profiles-daemon
powerdevil
pv
python
python-defusedxml
python-packaging
rebuild-detector
reflector
ripgrep
rsync
s-nail
sg3_utils
shotcut
smartmontools
sof-firmware
spectacle
steam
sudo
sysfsutils
texinfo
ttf-bitstream-vera
ttf-dejavu
ttf-liberation
ttf-meslo-nerd
ttf-opensans
ufw
unrar
unzip
upower
usb_modeswitch
usbutils
vim
vlc-plugins-all
vulkan-icd-loader
wget
which
wireplumber
wpa_supplicant
xdg-user-dirs
xdg-utils
xfsprogs
xl2tpd
xsettingsd
yt-dlp
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment