This seed provides the basic components that should be installed on an
PureOS desktop system. It is expected to be supplemented with a
particular flavour of desktop environment (e.g. GNOME, KDE, or XFCE).

= Hardware and Architecture Support =

== Architecture-independent ==

 * (alsa-utils)       # basic audio support and mixer level handling

Power management:

 * (acpi-support)
 * purism-power-optimisations [amd64]

Bluetooth:

 * (bluez)       # base for bluetooth support
 * (bluez-obexd)
 * (bluez-cups)  # allow connecting to bluetooth printers from CUPS

= Console-Based Tools =

These tools are very commonly used by people who drop into a console shell to do some work.

 * bc
 * zip
 * unzip                # also used for .zip support in file-roller
 * libpam-systemd
 * (genisoimage)

= Network Services =

Basic network services and Windows integration.

 * wireless-tools
 * rfkill
 * (libnss-mdns)       # IPv4 link-local DNS support
 * ca-certificates     # common SSL certificates

These packages help with system integration

 * libsasl2-modules    # allows integration with MTA and login system
 * (avahi-daemon)

= Printing =

Printing and printer configuration is a real weak spot in Debian, and in Linux in general. We will need to stay at the front of the curve here.

 * (cups)                       # our preferred printer management infrastructure
 * (cups-bsd)                   # gives us lpc, lpq, lpr, lprm
 * (cups-client)                # gives us cancel, cupstestppd, lp, lpoptions, lppasswd, lpstat, cupsaddsmb, accept, lpadmin, lpinfo, lpmove
 * foomatic-db-compressed-ppds  # the foomatic printer driver database
 * foomatic-filters             # converter from postscript to printer-specific formats
 * openprinting-ppds            # Most common drivers we want in desktop; less common are in o-p-extra
 * ghostscript-x

= GUI infrastructure =

Packages used for X preconfiguration are just Recommends; removing them after initial installation should be relatively safe.

 * (laptop-detect)
 * (low-memory-monitor)

 * (xorg)            # this includes xserver-xorg->xserver-xorg-{input|video}-* (no need to add specific drivers manually)
 * !linux-image-*    # xorg transitively depends on this, but this would pull in grub-pc; we handle that separately
 * xkb-data          # XKB data now lives here

 * (xdg-utils)       # useful utilities
 * xdg-user-dirs
 * libnotify-bin     # various scripts need notify-send (such as .bashrc's "alert")

 * pipewire          # multimedia daemon
 * (pipewire-audio)  # common requirements for a PipeWire audio setup
 * (packagekit)      # package management abstraction
 * (fwupd)           # firmware update manager

 * (pureos-upgrade)

Fonts:

 * fonts-dejavu-core
 * (fonts-noto-core)
 * (fonts-noto-ui-core)
 * (fonts-noto-cjk)
 * (fonts-noto-color-emoji) # for Emoji dialogs, see T410
 * (fonts-lato)
 * (fonts-hack-ttf)

Media codecs:

 * (libavcodec-extra)
 * (gstreamer1.0-libav)
 * (gstreamer1.0-plugins-good)
 * (gstreamer1.0-plugins-bad)
 * (gstreamer1.0-plugins-ugly)

= Other =

 * cryptsetup              # needed for encrypted devices, also in d-i-requirements seed
 * (cryptsetup-initramfs)  # initramfs integration for cryptsetup
 * (anacron)      # generally appropriate for desktops
 * (policykit-desktop-privileges) # passwordless disk/CPU speed/time operations for admins
 * (scdaemon)                # Kyle Rankin: needed for Librem Key integration
 * (pureos-artwork-base)
 * (librem-ec-acpi-dkms)     # Support for the ACPI embedded controller in Librem devices
 * (pureos-desktop-settings) # Default settings for a workstation computer
 * (pureos-flatpak-defaults) # Default Flatpak repositories

VM Support:
 * (spice-vdagent)

= Boot =

 * (grub-theme-pureos)
 * (plymouth)               # splash screen, and boot-time questions
 * (plymouth-theme-pureos)  # the PureOS Plymouth theme

= Meta =

 * pureos-standard # the standard PureOS system

= Development =

Here we provide a minimal development environment sufficient to build kernel
drivers, so that this is possible on the live CD and in scenarios where
it is problematic to get these packages onto the installed system in order
to compile a driver. -mdz

 * (gcc)
 * (make)
 * (flashrom) # for Librem OEM
