# 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/breadlock 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
# breadlock replaces hyprlock (locker) and tuigreet (greetd's greeter) — see
# /etc/greetd/config.toml and skel's hypridle.conf lock_cmd. cage hosts
# breadgreet as a single-client kiosk compositor under greetd.
breadlock
cage

# Bootloader + filesystem
grub
efibootmgr
btrfs-progs
dosfstools
mtools
# LUKS full-disk encryption — Calamares' partition module has encryption
# support built in and enabled by default, but needs cryptsetup actually
# present (live, to create the container; installed, to unlock at boot via
# mkinitcpio's encrypt hook) or the checkbox leads to an unbootable system.
cryptsetup
# Secure Boot key enrollment/signing (self-signed — see post-install.sh).
# Ships its own pacman hook (zz-sbctl.hook) that re-signs the kernel/
# bootloader automatically on every future update once enrolled.
sbctl
# 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 breadgreet → bos-session).
greetd
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 (breadbar, breadbox, breadclip, breadhelp, and other bakery apps)
gtk4
gtk4-layer-shell
librsvg
libpulse
hicolor-icon-theme
# Tauri 2 runtime for bakery-baked bos-settings. Arch's WebKitGTK 4.1 package
# is webkit2gtk-4.1 (libwebkit2gtk-4.1.so); libsoup3 and JavaScriptCore 4.1
# are pulled in as its dependencies. xdg-desktop-portal comes from the
# Hyprland/GTK portal packages listed above.
webkit2gtk-4.1
# 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);
# zathura(+pdf-mupdf): lightweight Wayland PDF viewer (BOS had no PDF reader).
gnome-text-editor
gnome-calculator
loupe
zathura
zathura-pdf-mupdf
# 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

# AUR helper — yay-bin is AUR-only (no AUR helper ships in the official
# repos), so it's republished to [breadway] the same way (see
# packaging/yay-bin). Lets users reach the wider AUR beyond bakery's bread
# ecosystem + [breadway]'s own small set of republished packages.
yay-bin

# Bread ecosystem.
#
# breadlock is the only bread* pacman package here (it needs a root-owned
# /etc/pam.d/breadlock). Everything else — bakery, bread/breadd/bread-emit/
# bread-module-host, breadbar, breadbox, breadcrumbs, breadpad, breadpaper,
# bread-theme, breadmon, breadsearch, breadclip, breadshot, bos-settings,
# breadhelp — is bakery-managed and baked into /etc/skel/.local at ISO build
# time from iso/bread-lockfile.toml (see build-local.sh). breadcast and
# breadarr are not shipped. bos-settings/breadhelp desktop entries are
# committed under iso/airootfs/etc/skel/.local/share/applications/. Runtime
# deps stay listed even though no bread package depends on them via pacman
# (gtk4, gtk4-layer-shell, webkit2gtk-4.1, iw, libpulse, librsvg, …).

# Input / screen utilities
brightnessctl
grim
slurp
# Clipboard (Wayland copy/paste; also clipboard screenshots) and media keys.
# Clipboard history is breadclip/breadclipd (bakery-managed, SUPER+SHIFT+V),
# not cliphist — wl-clipboard is still needed directly by breadclip/breadshot.
wl-clipboard
playerctl
# 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
# Hardware video acceleration (VA-API) — lets the AMD/Intel GPU decode H.264/HEVC/
# VP9 in mpv, VLC, and browsers instead of the CPU (cooler, longer battery on
# video). The open Mesa VA-API backend (radeonsi_drv_video.so etc.) now ships in
# the `mesa` package itself (pulled in already), so only libva (deps) + the
# `vainfo` verification tool need listing here.
libva-utils
# 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 with the same prompt + plugins as the dev laptop. Powerlevel10k is
# AUR-only, so it's republished to [breadway] (see packaging/powerlevel10k). The
# three plugins come from the official repos; skel/.zshrc sources them in order
# (autosuggestions → history-substring-search → syntax-highlighting LAST).
zsh
zsh-theme-powerlevel10k
zsh-autosuggestions
zsh-history-substring-search
zsh-syntax-highlighting
# 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

# Graphical alternatives to terminal-only tools, so users who want more
# graphical control aren't funneled to a shell for everyday things.
# gnome-disk-utility: partition/format/SMART-health GUI for gnome-disks.
# gufw: GUI front-end for the ufw firewall bos already enables by default.
# mission-center: graphical task manager (CPU/mem/disk/net + process list).
gnome-disk-utility
gufw
mission-center

# 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
