# Base system
base
base-devel
linux
linux-firmware
linux-headers
# CPU microcode — applied early by GRUB on the installed system (picked up by
# the bootloader module). amd-ucode for the dev laptop's Ryzen; intel-ucode for
# Intel targets. bos-copy-kernel also stages these into the live target /boot.
amd-ucode
intel-ucode

# Power management (vendor-neutral; works on Intel and AMD). tlp auto-tunes power
# by AC/battery and CPU driver; hypridle/hyprlock handle idle dim/off/lock/suspend
# and the lock screen; upower exposes battery state. NOT power-profiles-daemon —
# it conflicts with tlp.
tlp
tlp-rdw
upower
hypridle
hyprlock

# Bootloader + filesystem
grub
efibootmgr
btrfs-progs
dosfstools
mtools
# squashfs-tools: provides unsquashfs, which Calamares' unpackfs module uses
# to extract airootfs.sfs onto the target during install.
squashfs-tools
# rsync: unpackfs copies the unpacked rootfs onto the target with rsync.
rsync
# Live-ISO boot (archiso bootmodes: bios.syslinux + uefi.systemd-boot)
# mkinitcpio-archiso provides the initramfs hooks that find and mount
# airootfs.sfs and switch root into it — without it the live ISO drops
# to emergency mode on boot.
mkinitcpio
mkinitcpio-archiso
mkinitcpio-nfs-utils
syslinux
memtest86+
memtest86+-efi
edk2-shell

# Snapshot infrastructure
snapper
snap-pac
grub-btrfs
inotify-tools

# Wayland / Hyprland
hyprland
xdg-desktop-portal-hyprland
# GTK portal backend — file-chooser/screenshot portals for Flatpak, Electron,
# and Firefox-based apps (Zen). Without it those apps get no file dialog.
xdg-desktop-portal-gtk
# Login manager for the installed system (Wayland-native; enabled by
# post-install.sh, launches the Hyprland session via tuigreet → bos-session).
greetd
greetd-tuigreet
xdg-utils
xdg-user-dirs
polkit
polkit-gnome

# Audio
pipewire
wireplumber
pipewire-pulse
pipewire-alsa
pipewire-jack

# Network
networkmanager
network-manager-applet
iw
# mDNS service/name resolution — lets CUPS auto-discover network printers and
# resolves .local hostnames (avahi-daemon enabled + nss-mdns wired in
# post-install.sh).
avahi
nss-mdns
# Wi-Fi backend for NetworkManager (its default; no extra config needed).
wpa_supplicant
bluez
bluez-utils
# blueman: GUI Bluetooth manager (pair/connect devices; breadbar shows status only).
blueman

# GTK4 runtime
gtk4
gtk4-layer-shell
librsvg
libpulse
# GTK3 dark theme (Adwaita-dark); without this package the gtk-theme-name in
# skel settings.ini silently falls back to the light theme for GTK3 apps.
gnome-themes-extra
# Schema + backend behind `gsettings set org.gnome.desktop.interface
# color-scheme prefer-dark` (set in hyprland.lua autostart). Without these the
# gsettings call fails silently and libadwaita apps (nautilus, gnome-text-editor)
# render in LIGHT mode regardless of the GTK theme.
gsettings-desktop-schemas
dconf
# Credential/keyring storage — browsers, SSH agents, and most apps persist
# passwords here; without it every session loses saved logins. seahorse is the
# GUI to view/manage the stored secrets and keys.
gnome-keyring
seahorse

# Display (wlroots is bundled with Hyprland; don't list separately)
wayland
wayland-protocols

# Fonts
noto-fonts
noto-fonts-cjk
noto-fonts-emoji
ttf-jetbrains-mono
# Nerd font variant — icons in terminal tools (eza --icons, fastfetch, yazi)
ttf-jetbrains-mono-nerd
# Metric-compatible (Arial/Times/Courier) so Office/web docs lay out correctly,
# broad Unicode fallback, and the Font Awesome icon glyph set (otf-, the desktop
# variant — ttf-font-awesome resolves to the web-only woff2 build).
ttf-liberation
ttf-dejavu
otf-font-awesome

# Terminal
kitty

# File manager
nautilus
# gvfs: virtual filesystem layer for nautilus (trash, network places, removable
# media). gvfs-mtp adds Android/MTP device support (phones, tablets via USB).
gvfs
gvfs-mtp
# file-roller: archive manager — gives nautilus right-click Extract/Compress.
file-roller

# GUI applications a general desktop is expected to have out of the box.
# gnome-text-editor: graphical editor (terminal editors aside); gnome-calculator:
# calculator; loupe: Wayland-native image viewer (default for image files).
gnome-text-editor
gnome-calculator
loupe
# Media player — BOS ships gstreamer codecs but otherwise has no player app.
vlc
# Web browser (served from the [Breadway] repo; AUR zen-browser-bin republished
# there so the ISO build can pull it via pacman). mailcap satisfies zen's
# mime-types dependency explicitly.
zen-browser-bin
mailcap

# Installer — Calamares is AUR-only; built in-house and served from [breadway]
# (calamares 3.4.x is already Qt6; there is no separate calamares-qt6 package)
calamares

# Bread ecosystem.
#
# The bread apps themselves (bakery, bread, breadbar, breadbox, breadcrumbs,
# breadpad) are NOT pacman packages here — they are bakery-managed binaries
# baked into /etc/skel/.local/bin at build time (see build-local.sh), so every
# user gets the exact versions from this laptop's bakery install with no
# network/DNS needed at install or runtime. Their runtime system deps are pulled
# in elsewhere in this list (gtk4, gtk4-layer-shell, iw, libpulse, librsvg,
# networkmanager, openssl, zlib, systemd-libs) — keep those even though no bread
# package depends on them.
#
# bos-settings is a BOS-specific pacman package (not part of the bakery index),
# so it stays here, served from the [breadway] repo.
bos-settings

# Input / screen utilities
brightnessctl
grim
slurp
# Clipboard (Wayland copy/paste; also clipboard screenshots) and media keys.
wl-clipboard
playerctl
# Clipboard history daemon (stores wl-clipboard events; breadbox bind replays them).
cliphist
# Wallpaper daemon + pywal (drives the bread* colour palette from the wallpaper).
awww
python-pywal
# Boot splash (BOS logo + spinner instead of kernel text).
plymouth

# Media codecs — GStreamer plugins for video thumbnails in nautilus, browser
# media, and general playback. bad/ugly add patent-encumbered formats (H.264 etc).
gst-plugins-good
gst-plugins-bad
gst-plugins-ugly
# GUI audio mixer — useful when output device needs manual switching.
pavucontrol

# Utilities
sudo
git
curl
wget
unzip
tar
gzip
which
man-db
man-pages
less

# Base CLI tools every install should have.
# Shell
zsh
# Editors
nano
micro
vim
neovim
# Shell QoL — modern replacements shipped with skel aliases set up
eza
bat
fzf
zoxide
# Fast search — pairs with fzf/zsh and underpins a good neovim experience
ripgrep
fd
# System / hardware inspection
htop
usbutils
pciutils
dmidecode
lsof
tree
fastfetch
# Removable-media filesystems (USB sticks, external drives)
ntfs-3g
exfatprogs
# Archives
7zip
zip
unrar
# Remote access (ssh client; sshd ships disabled)
openssh
# Mirror management (refresh /etc/pacman.d/mirrorlist for the user's location)
reflector

# Printing — CUPS daemon + GUI printer setup. cups-pk-helper lets the GUI add
# printers via polkit without a root shell. cups.socket is enabled in
# post-install.sh so printing works on the installed system.
cups
cups-pk-helper
system-config-printer

# Flatpak — sandboxed third-party app distribution (Flathub). The user adds a
# remote post-install (needs network); the runtime is shipped ready.
flatpak

# Firewall — ufw, enabled deny-incoming in post-install.sh (mDNS allowed so
# printer discovery still works).
ufw
# Firmware updates via LVFS (works with gnome-software / fwupdmgr).
fwupd
# Compressed RAM swap — see /etc/systemd/zram-generator.conf.
zram-generator

# Icon and cursor themes
# Papirus-Dark: cohesive icon set used as the BOS default (set via gsettings in
# hyprland.lua autostart and in skel gtk-3.0/settings.ini).
papirus-icon-theme
# Bibata-Modern-Ice: BOS default cursor. AUR-only upstream, republished to the
# [breadway] repo (see packaging/bibata + .forgejo/workflows/bibata.yml). Set via
# XCURSOR_THEME env in hyprland.lua and gtk settings.ini / gsettings.
bibata-cursor-theme-bin

# Qt dark theme — makes Qt5/Qt6 apps (VLC, pavucontrol, etc.) respect the dark
# palette. qt5ct/qt6ct are configured via skel to use Fusion style in dark mode;
# QT_QPA_PLATFORMTHEME=qt5ct is set in hyprland.lua env.
qt5ct
qt6ct
# Native Wayland platform plugins for Qt — QT_QPA_PLATFORM=wayland (set in
# hyprland.lua) needs these or Qt apps fall back to (blurry) XWayland.
qt5-wayland
qt6-wayland

# Dev tools (for bos-settings standalone install)
rustup
