# Packages ## Base install Install these with `pacstrap` while installing Arch: ```sh base_packages=( base # Minimal Arch system linux # Linux kernel sudo # Run commands as root from the user account iwd # Wi-Fi management during and after install git # Version control and cloning dotfiles ) pacstrap /mnt "${base_packages[@]}" ``` ## Core tools Install after booting into the new system: ```sh core_packages=( tmux # Terminal multiplexer kakoune # Text editor man-db # Manual page database man-pages # Linux and POSIX manual pages clang # C/C++ compiler toolchain make # Build automation tool tcc # Tiny C compiler ripgrep # Fast grep replacement, command: rg curl # Download URLs from the command line plocate # Fast file name search database fzf # Fuzzy finder for terminal scripts and navigation gdb # Debugger ) sudo pacman -S --needed "${core_packages[@]}" ``` ## Networking and remote files ```sh network_packages=( openssh # SSH client/server tools sshfs # Mount remote machines over SSH ) sudo pacman -S --needed "${network_packages[@]}" ``` ## Desktop: Sway / Wayland ```sh desktop_packages=( sway # Wayland window manager swayidle # Idle actions like lock, suspend, hibernate swaybg # Wallpaper setter for Sway swaylock # Screen locker for Sway/Wayland foot # Wayland terminal emulator wmenu # Lightweight Wayland launcher/menu xorg-xwayland # Run X11 applications inside Wayland wl-clipboard # wl-copy and wl-paste clipboard tools xdg-desktop-portal-wlr # Portal backend for screen sharing and app integration xdg-user-dirs # Standard folders like Downloads, Documents, Pictures grim # Wayland screenshot tool ) sudo pacman -S --needed "${desktop_packages[@]}" ``` ## Audio and media ```sh media_packages=( pipewire # Modern Linux audio/media server pipewire-pulse # PulseAudio compatibility for PipeWire pipewire-alsa # ALSA compatibility for PipeWire pipewire-jack # JACK compatibility for PipeWire wireplumber # PipeWire session and policy manager pavucontrol # Graphical volume mixer ffmpeg # Video/audio codecs and conversion tools imv # Image viewer mpv # Video/audio player ) sudo pacman -S --needed "${media_packages[@]}" ``` ## Fonts ```sh font_packages=( ttf-fira-code # Monospace programming font with ligatures noto-fonts # Broad Unicode font coverage noto-fonts-cjk # Chinese, Japanese, and Korean font coverage noto-fonts-emoji # Emoji font support noto-fonts-extra # Extra Noto font families ttf-liberation # Microsoft-compatible replacement fonts ttf-dejavu # General purpose readable fonts ttf-roboto # Roboto font family ) sudo pacman -S --needed "${font_packages[@]}" ``` ## Browser and extra tools ```sh app_packages=( firefox # Web browser opencode # AI coding agent; may require AUR or a custom repository ) sudo pacman -S --needed "${app_packages[@]}" ``` # Setting up the boot loader with systemd-boot 1. Setting up bootloader with systemd (EFI, mounted at /boot) 1.1. sudo bootctl install 1.2. copy over the loader.conf to /boot/loader/loader.conf and modify (set timeout to 0 because faster) 1.3. find partition ID using blkid 1.4. create arch boot entry with that UUID /boot/loader/entries/arch.conf # Setup user 1. useradd -s /bin/bash -m -G wheel kk 1.1. `m` - means create directory 1.2. `-G wheel` - means add to sudo group so that sudo works when using the user 2. passwd kk # Enabling internet 1. enable and start systemd-networkd 1.1. for ethernet: copy over the ethernet configuration file from default configs 1.2. for wifi: need to install iwd first in pacstrap, I think copy over the config and setup the connection using iwd # Nvidia drivers 1. pacman -Syu nvidia-open 1.1. For my PC graphics card sudo usermod -aG video,render ssh-keygen -t ed25519 -N "" -f ~/.ssh/id_ed25519