Skip to content

Walkthrough

  • Disk config & Authentication => Assumed to not be resumed

Disk is self-explanatory and kinda risky always. Multi-disk was removed because adding disks later on is trivial

They let you decide where to install to set up users/groups/elevation/shells + stashes

  • Locales & Pacman & TZ/NTP & Hostname

This tries to follow the ArchWiki as close as possible.

These are main auto configurations that are found on the system or need to be setup. This is usually done through systemctl calls or /etc

terminus-font is auto-added when requested as a console font through /etc/vconsole.conf A keymap is also set here.

Repos, mirrors, misc options.

  • Bootloader & Swap & Kernels/Headers & Firmware

These are also self-explained. And critical. Can select several kernels.

  • Network

Options here are also important: Both NetworkManager:

  • Default backend wpa_supplicant (Others)
  • IWD backend iwd managed by NM (Usually for Intel hardware)
  • Copy from ISO (Use current config) minimal systemd network features
  • IWD standalone

Usually I pick Copy to ISO from VMs or a desktop (cabled) and other two options for laptops this allows for proper integration to DEorWM.

  • Applications & Profile

This is all up to user preference, can be multi-selected / some set the global default (like Editor and Terminal) through /etc/environment

Terminal is the one every window manager profile shares: it installs the package, exports TERMINAL, and repoints the keybind in whatever config the profile ships. Skipping it leaves the profiles on alacritty.

Hardware drivers can also be skipped and added to AUR step below if needed.

  • Additional packages & AUR packages

You can also add something like noto-fonts variants at this step or anything you would like in target really.

Also all up to user preference, AUR hidden behind --advanced this allows to build DKMS drivers.

Make sure to toggle Kernel Headers when doing so.

  • Sysctl & Custom commands

This is an experimental feature which allows me to test some additional automation steps.


Working on customizing

Configs and custom profiles references can be found in examples/

You can also add them directly in default_profiles/ following other profiles as example or modify existing ones.

The package schema

schema.toml lists every package an install can pull, in the order the install pulls them. It is generated, the package lists live in the code that installs them (profiles under default_profiles/, the enums under lib/models/, the app handlers under lib/applications/cat/), and lib/schema_gen.py flattens them out.

So to change what gets installed, change the codepath, then regenerate:

python -m archinstoo --script schema

tests/test_schema.py fails if the committed file is stale, and --script count / --script size and nvchecker/NVGEN all read the generated file rather than the runtime.

Each application category's Section also carries a pick: the key path under app_config where a saved config keeps that choice. count/size walk the picks, so a new category is one Section line and a regenerate; the test fails on a category without one. The step list is in API_REF.md, "Add an application".