The scripts
How the pipeline works
One orchestrator, a library of shared helpers, and a numbered pipeline you control by commenting lines. Everything is plain Bash — nothing hidden.
The orchestrator
0-current-choices.sh sources the helper library,
detects your OS from /etc/os-release, configures repos, updates the system, runs any
distro-specific fixups, then runs the numbered scripts in order:
run_glob "${WORKING_DIR}/100-*" # all 100-prefixed scripts, in order
run_glob "${WORKING_DIR}/110-*"
# ... and so on
Enable or disable a step by commenting its line in that one file. The numbering defines execution order.
The numbered pipeline
Each stage is a self-contained script that sources common/common.sh and can also be run on its own.
| Stage | Does |
|---|---|
| 100 | Install the core Nemesis software set |
| 105 | Install development tooling |
| 110 | Install core system software |
| 120 | Install Nemesis icon themes |
| 130 | Set up Bluetooth |
| 140 | Set up CUPS printing |
| 150 | Configure ananicy (process priorities) |
| 200 | Configure the AUR software repo |
| 300 / 301 | Sardi icon extras — install / remove |
| 400 / 401 | Surfn icon extras — install / remove |
| 500 | Plasma-specific setup |
| 600 | Build and install Ohmychadwm |
| 900–999 | Personal layer — dotfiles, themes, and app configs (in personal/) |
Stages evolve over time — the GitHub repo is always the source of truth.
The shared library
Every script sources common/common.sh. It wraps the
messy parts so scripts stay readable and cross-distro — on non-Arch systems the right package manager is swapped in automatically.
Packages
install_packages, remove_packages, pkg_installed — install/remove via the distro's package manager.
Services
enable_now_service, disable_service, restart_service.
Files
backup_file_once, copy_file, append_line_if_missing, replace_text_in_file.
Logging
log_section, log_info, log_warn, log_success — consistent, readable output.
Safe by default
backup_file_once saves originals with a .nemesis suffix before overwriting — pacman.conf, environment, mirrorlist, and more.
Right user under sudo
$TARGET_USER resolves to the invoking user even under sudo, so dotfiles land in the right home directory.
Standalone utilities
The scripts/ folder holds focused, run-on-their-own tools. Launch the interactive menu with
bash scripts/1-install-scripts.sh, or run any one directly.
Read the source
Every script is plain Bash on GitHub. Examine and judge before you run.