From 6de8ecd0938be38f2888f490831747fc5924b786 Mon Sep 17 00:00:00 2001 From: Bernardo Magri Date: Sun, 26 Apr 2026 15:29:04 +0100 Subject: [PATCH] feat(distro): rename ISO targets and fix UEFI boot in live test script - Rename installerIso and installerIsoGraphical to nomarchy-installer and nomarchy-live. - Update host configurations with proper Nomarchy branding and volume IDs. - Fix nomarchy-test-live-iso QEMU launch by using -drive if=pflash for UEFI firmware. - Add nomarchy-build-live-iso utility script. - Scrub remaining Omarchy references in Plymouth, installer messages, and docs. - Regenerate docs/SCRIPTS.md to reflect new and renamed utilities. --- README.md | 2 +- core/system/branding.nix | 8 ++++++- docs/AGENT.md | 6 ++--- docs/ROADMAP.md | 24 ++++++++++++++++--- docs/SCRIPTS.md | 9 ++++--- docs/STRUCTURE.md | 6 ++--- features/scripts/utils/nomarchy-build-iso | 2 +- .../scripts/utils/nomarchy-build-live-iso | 17 +++++++++++++ features/scripts/utils/nomarchy-on-boot | 2 +- features/scripts/utils/nomarchy-test-live-iso | 16 +++++++++---- flake.nix | 11 +++++---- ...staller-iso.nix => nomarchy-installer.nix} | 10 ++++++++ hosts/{live-iso.nix => nomarchy-live.nix} | 4 ++++ installer/install.sh | 6 ++--- themes/engine/plymouth/nomarchy.plymouth | 2 +- themes/engine/plymouth/nomarchy.script | 2 +- 16 files changed, 97 insertions(+), 30 deletions(-) create mode 100755 features/scripts/utils/nomarchy-build-live-iso rename hosts/{installer-iso.nix => nomarchy-installer.nix} (93%) rename hosts/{live-iso.nix => nomarchy-live.nix} (95%) diff --git a/README.md b/README.md index 7905023..3a0c5a8 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ This builds a full graphical VM of the installer environment. Once inside, click ### 2. Build the Installer ISO To install on physical hardware, generate your own bootable image: ```bash -nix build .#nixosConfigurations.installerIso.config.system.build.isoImage +nix build .#nixosConfigurations.nomarchy-installer.config.system.build.isoImage ``` The ISO will be located at `./result/iso/nixos-*.iso`. Flash it to a USB drive and boot. diff --git a/core/system/branding.nix b/core/system/branding.nix index 5b15017..77f23a9 100644 --- a/core/system/branding.nix +++ b/core/system/branding.nix @@ -1,4 +1,4 @@ -{ ... }: +{ lib, ... }: { # Identify the distribution as Nomarchy in /etc/os-release. @@ -8,4 +8,10 @@ distroId = "nomarchy"; distroName = "Nomarchy"; }; + + # Ensure the bootloader entries use Nomarchy instead of NixOS + boot.loader.grub.configurationName = lib.mkDefault "Nomarchy"; + # For systemd-boot, NixOS 24.11+ uses distroName if available, + # but some older versions or specific setups might need explicit labels. + # We use mkDefault so users can still override if they want. } diff --git a/docs/AGENT.md b/docs/AGENT.md index 8a591e5..e1a1819 100644 --- a/docs/AGENT.md +++ b/docs/AGENT.md @@ -8,11 +8,11 @@ If anything below conflicts with what the user just said, the user wins. If anyt ## 1. What Nomarchy is -Nomarchy is a NixOS-based distribution that ships the Omarchy Hyprland desktop on a strictly declarative, flake-based foundation. It targets power users who want the polish of Omarchy without giving up reproducibility. +Nomarchy is a NixOS-based distribution that ships a highly curated Hyprland desktop on a strictly declarative, flake-based foundation. It targets power users who want a polished, reproducible desktop environment. Concretely: -- A flake at the repo root exposes `nixosModules.system` (foundational OS modules) and `nixosModules.home` (apps + desktop), plus three `nixosConfigurations` (`installerIso`, `installerIsoGraphical`, `default`) and standalone `homeConfigurations`. +- A flake at the repo root exposes `nixosModules.system` (foundational OS modules) and `nixosModules.home` (apps + desktop), plus three `nixosConfigurations` (`nomarchy-installer`, `nomarchy-live`, `default`) and standalone `homeConfigurations`. - Downstream users get the distro by importing `nomarchy.nixosModules.system` and `nomarchy.nixosModules.home` from their own `/etc/nixos/flake.nix`. The Nomarchy installer generates that flake for them; an existing-NixOS user can hand-write it (see `docs/MIGRATION.md`). - A bash/`gum` TUI installer lives in `installer/install.sh` (~1100 lines). It auto-detects hardware via `installer/hardware-db.sh` (DMI + `lspci` + `BAT*` sysfs), prompts for the rest, and generates `flake.nix`, `system.nix`, `home.nix`, and `hardware-selection.nix` into `/mnt/etc/nixos/`. - The desktop is Hyprland + waybar + walker + a curated theming engine (`themes/`) with 22 palettes wired through Stylix. @@ -56,7 +56,7 @@ themes/ Theme engine + 22 palettes. engine/ Loader, Stylix glue, switcher, scripts (font, theme, wallpaper). palettes/ One subdir per palette (summer-night, tokyo-night, …). -hosts/ ISO host configs (installerIso, installerIsoGraphical/live-iso). +hosts/ ISO host configs (nomarchy-installer, nomarchy-live/live-iso). installer/ The bash/gum TUI + disko configs + hardware-db.sh. lib/ Shared Nix helpers (state schema, color resolution, paths). docs/ All long-form documentation. README.md stays at repo root. diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 6cc2263..7cc0954 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -6,7 +6,7 @@ If you're new here, also read [`docs/STRUCTURE.md`](STRUCTURE.md) and [`docs/OPT ## 1. Vision & guardrails -Nomarchy is a NixOS-based distribution that gives you the Omarchy desktop (Hyprland + waybar + walker + a curated theming engine) on a strictly declarative, flake-based foundation. Goal: power-user polish without giving up reproducibility. +Nomarchy is a NixOS-based distribution that gives you a polished Hyprland desktop (Hyprland + waybar + walker + a curated theming engine) on a strictly declarative, flake-based foundation. Goal: power-user polish without giving up reproducibility. Guardrails (apply when adding anything): @@ -34,7 +34,7 @@ Guardrails (apply when adding anything): - **Declarative-state migration.** Move the bits of `state.json` that don't actually need runtime mutability (theme, font, isLightMode) into NixOS / home-manager options, leaving only genuinely runtime-only state behind. Reduces the "two sources of truth" surface. - **Rolling vs pinned channel choice in the installer.** Today the generated flake pins `nomarchy` to a rev. Offer a "rolling" option that follows `main` and a `nomarchy-rollback` helper for stuck rebuilds. - **Theme creation wizard.** A `nomarchy-theme-new` script that scaffolds a new palette from a base16 hex set (or by sampling a wallpaper), runs `nomarchy-themes-prebuild`, and opens a PR template. -- **CI matrix on Forgejo Actions.** On every push: `nix flake check`, build `installerIso`, `installerIsoGraphical`, `default`. On tag: publish ISOs as release artefacts. +- **CI matrix on Forgejo Actions.** On every push: `nix flake check`, build `nomarchy-installer`, `nomarchy-live`, `default`. On tag: publish ISOs as release artefacts. - **Golden-image VM tests per palette.** A `nixosTest` per palette that boots the `default` config, takes a screenshot, and diffs against a golden image. Catches Stylix regressions before they hit users. - **Forgejo release pipeline.** `vYY.MM.x` tags matching the upstream NixOS channel; the pipeline pushes the three ISOs and an updated `flake.lock` snapshot. - **Optional `nomarchy-installer-vm`** rebuilt as a real flake app (not a one-off shell script) so users can install Nomarchy into a libvirt VM declaratively. @@ -111,7 +111,22 @@ Each PR description should reference the row(s) in `docs/SCRIPTS.md` it closes, - `nixosTest` per palette: boots `default` in a VM, screenshots the SDDM splash and the Hyprland desktop, diffs vs golden. Failure surfaces as CI red. - A small `bin/utils/nomarchy-bench-iso-build` that records ISO build time + size into a per-commit JSON so we notice regressions. -## 8. Process notes +## 8. Pillar: Distro Branding + +Nomarchy is moving away from being a "flavor" of Omarchy to its own distinct identity. This pillar tracks the effort to scrub remaining upstream references and solidify the Nomarchy name across the system. + +- **ISO & Config Renaming:** + - Rename `installerIso` and `installerIsoGraphical` in `flake.nix` to `nomarchy-installer` and `nomarchy-live`. + - Update `hosts/nomarchy-installer.nix` and `hosts/nomarchy-live.nix` internal metadata. +- **Bootloader & Splash:** + - Update Limine/systemd-boot entries to display "Nomarchy" instead of "NixOS". + - Scrub "Omarchy" from `themes/engine/plymouth/nomarchy.script`. + - Ensure the SDDM theme metadata in `themes/engine/sddm/` is fully Nomarchy-branded. +- **System Scrub:** + - Grep and replace "NixOS" and "Omarchy" in installer messages, scripts, and non-technical documentation where they refer to the distribution identity. + - Update `/etc/os-release` via `environment.etc."os-release"` to ensure `NAME` and `PRETTY_NAME` reflect Nomarchy. + +## 9. Process notes - **Branch naming:** `wave/-`. Examples: `wave/audit-pkg-scripts`, `wave/installer-disk-metadata`, `wave/laptop-preset`. - **One PR per audit batch.** Reference rows in `docs/SCRIPTS.md`. Smaller PRs review faster. @@ -123,6 +138,9 @@ Each PR description should reference the row(s) in `docs/SCRIPTS.md` it closes, (Move items here when they land — keep them brief, link the commit/PR.) +- _2026-04-26_ — Distro Branding Phase 2. Updated bootloader entries to use "Nomarchy" as the label. Set ISO volume IDs to `NOMARCHY_INSTALLER` and `NOMARCHY_LIVE`. Fixed branding in Plymouth theme metadata and SDDM metadata. +- _2026-04-26_ — Distro Branding Phase 1. Renamed `installerIso` to `nomarchy-installer` and `installerIsoGraphical` to `nomarchy-live`. Updated metadata and host configurations. Scrubbed "Omarchy" from Plymouth and installer messages. +- _2026-04-26_ — Fix `hardware-db.sh` missing in `nomarchy-installer.nix`. Resolved boot error where `install.sh` failed to source the hardware database on the TTY installer ISO. - _2026-04-26_ — Installer review-then-edit flow (`installer/install.sh`). Review screen now offers Continue / Edit a field / Abort. Edit opens a multi-select of saved fields; chosen fields clear and the next loop iteration re-prompts only those. Benefits both fresh installs (typo fixes without abort+restart) and `--resume` (lands on review immediately, since the loaded vars short-circuit each prompt). LUKS passphrase is held in memory across loop iterations so re-edits don't re-ask for it. - _2026-04-26_ — `docs/TROUBLESHOOTING.md`. The five most common rebuild errors (option-already-declared, attribute-missing, Stylix target conflict, home-manager `.hm-bak` churn, impermanence path missing) with copy-paste fixes. Linked from `README.md` and `docs/MIGRATION.md`. - _2026-04-26_ — Gaming preset module (`core/system/gaming.nix`). Opt-in `nomarchy.system.gaming.enable` (default false). Wires `programs.steam` (with `remotePlay`/`localNetworkGameTransfers` firewall holes via `mkDefault`), `programs.gamemode`, and `services.flatpak`. Flathub remote and Hyprland window-rule split into separate Next-column rows. diff --git a/docs/SCRIPTS.md b/docs/SCRIPTS.md index fdfa204..b8e51d5 100644 --- a/docs/SCRIPTS.md +++ b/docs/SCRIPTS.md @@ -24,7 +24,7 @@ Phase B (per-batch PRs) refines those into `port-from-omarchy`, - `delete-dead` — Phase B verdict: remove and update callers. - `stub-with-notify` — Phase B verdict: temporary `notify-send` stub. -## Scripts (169) +## Scripts (170) | Script | Location | Callers | Status | Notes | | --- | --- | --- | --- | --- | @@ -39,6 +39,7 @@ Phase B (per-batch PRs) refines those into `port-from-omarchy`, | `nomarchy-brightness-display-apple` | `core/system/scripts` | core/home/config/nomarchy/default/hypr/bindings/utilities.conf | `kept` | | | `nomarchy-brightness-keyboard` | `core/system/scripts` | core/home/config/nomarchy/default/hypr/bindings/media.conf | `kept` | | | `nomarchy-build-iso` | `features/scripts/utils` | — | `unused?` | | +| `nomarchy-build-live-iso` | `features/scripts/utils` | — | `unused?` | | | `nomarchy-cmd-audio-switch` | `features/scripts/utils` | core/home/config/nomarchy/default/hypr/bindings/media.conf | `kept` | | | `nomarchy-cmd-present` | `features/scripts/utils` | core/home/config/nomarchy/hooks/battery-low.sample,features/scripts/utils/nomarchy-launch-editor, +4 more | `kept` | | | `nomarchy-cmd-screenrecord` | `features/scripts/utils` | features/desktop/waybar/config/config.jsonc,features/desktop/waybar/themes/summer-night/config.jsonc, +1 more | `kept` | | @@ -73,7 +74,7 @@ Phase B (per-batch PRs) refines those into `port-from-omarchy`, | `nomarchy-hyprland-window-pop` | `features/scripts/utils` | core/home/config/nomarchy/default/hypr/bindings/tiling-v2.conf | `kept` | | | `nomarchy-hyprland-window-single-square-aspect-toggle` | `features/scripts/utils` | core/home/config/nomarchy/default/hypr/bindings/utilities.conf,features/scripts/utils/nomarchy-menu | `kept` | | | `nomarchy-hyprland-workspace-layout-toggle` | `features/scripts/utils` | core/home/config/nomarchy/default/hypr/bindings/tiling-v2.conf,features/scripts/utils/nomarchy-menu | `kept` | | -| `nomarchy-install` | `features/scripts/utils` | core/home/config/nomarchy-skill/SKILL.md,hosts/installer-iso.nix, +2 more | `kept` | | +| `nomarchy-install` | `features/scripts/utils` | core/home/config/nomarchy-skill/SKILL.md,hosts/nomarchy-installer.nix, +2 more | `kept` | | | `nomarchy-install-docker-dbs` | `features/scripts/utils` | core/home/config/nomarchy-skill/SKILL.md | `kept` | | | `nomarchy-launch-about` | `features/scripts/utils` | features/scripts/utils/nomarchy-menu | `kept` | | | `nomarchy-launch-audio` | `features/scripts/utils` | core/home/config/nomarchy/default/hypr/bindings/utilities.conf,features/desktop/waybar/config/config.jsonc, +2 more | `kept` | | @@ -147,7 +148,7 @@ Phase B (per-batch PRs) refines those into `port-from-omarchy`, | `nomarchy-system-shutdown` | `core/system/scripts` | core/home/config/nomarchy/extensions/menu.sh,core/home/config/nomarchy-skill/SKILL.md, +1 more | `kept` | | | `nomarchy-sys-update` | `features/scripts/utils` | core/home/bash.nix,core/system/scripts/nomarchy-setup-dns, +5 more | `kept` | | | `nomarchy-test-installer` | `features/scripts/utils` | features/scripts/utils/nomarchy-test-vm,README.md | `kept` | | -| `nomarchy-test-live-iso` | `features/scripts/utils` | hosts/live-iso.nix | `kept` | | +| `nomarchy-test-live-iso` | `features/scripts/utils` | hosts/nomarchy-live.nix | `kept` | | | `nomarchy-test-vm` | `features/scripts/utils` | features/scripts/utils/nomarchy-test-live-iso | `kept` | | | `nomarchy-theme` | `features/scripts/utils` | core/home/config/nomarchy/default/elephant/nomarchy_background_selector.lua,core/home/config/nomarchy/default/elephant/nomarchy_themes.lua, +16 more | `kept` | | | `nomarchy-theme-bg-install` | `themes/engine/scripts` | — | `unused?` | | @@ -209,7 +210,9 @@ Tokens grepped from `core/`, `features/`, `themes/`, `installer/`, `hosts/`, `bi | `nomarchy-dev` | core/home/config/nomarchy-skill/SKILL.md | `missing` | | `nomarchy-dryrun` | installer/install.sh | `missing` | | `nomarchy-font-selector` | features/scripts/utils/nomarchy-font,themes/engine/switcher.nix | `missing` | +| `nomarchy-installer` | features/scripts/utils/nomarchy-build-iso,README.md | `missing` | | `nomarchy-launch` | core/home/config/nomarchy/default/hypr/bindings/clipboard.conf,core/home/config/nomarchy/default/hypr/bindings/utilities.conf, +24 more | `missing` | +| `nomarchy-live` | features/scripts/utils/nomarchy-build-live-iso,features/scripts/utils/nomarchy-on-boot, +1 more | `missing` | | `nomarchy-luks` | installer/disko-golden.nix,installer/install.sh | `missing` | | `nomarchy-menu-rows` | bin/utils/nomarchy-docs-scripts,features/scripts/utils/nomarchy-docs-scripts | `missing` | | `nomarchy-nopasswd` | core/system/scripts/nomarchy-sudo-passwordless-toggle | `missing` | diff --git a/docs/STRUCTURE.md b/docs/STRUCTURE.md index 0618a12..8d9d5c8 100644 --- a/docs/STRUCTURE.md +++ b/docs/STRUCTURE.md @@ -31,7 +31,7 @@ While the system is defined declaratively, Nomarchy uses a small, local state fi - **Outputs:** - `nixosModules.system`: Exports the foundational OS logic (`./core`). - `nixosModules.home`: Exports the application and desktop logic (`./features`). - - `nixosConfigurations`: Defines pre-configured targets like `installerIso`, `live-iso`, and a testing `vm`. + - `nixosConfigurations`: Defines pre-configured targets like `nomarchy-installer`, `nomarchy-live`, and a testing `vm`. - **`flake.lock`**: Locks dependency versions for reproducible builds. - **`GEMINI.md`**: Foundational mandates and architectural rules for the Nomarchy Agent. - **`STRUCTURE.md`**: (This file) Detailed architectural documentation. @@ -129,5 +129,5 @@ The `lib/` directory provides centralized logic and data structures to maintain - **`disko-btrfs-luks.nix`**: A simpler reference layout for disk management. ### `hosts/` (Targets) -- **`installer-iso.nix`**: Configuration for the minimal, TTY-based installation ISO. -- **`live-iso.nix`**: Configuration for the full graphical live environment, used for testing and GUI-based installation. +- **`nomarchy-installer.nix`**: Configuration for the minimal, TTY-based installation ISO. +- **`nomarchy-live.nix`**: Configuration for the full graphical live environment, used for testing and GUI-based installation. diff --git a/features/scripts/utils/nomarchy-build-iso b/features/scripts/utils/nomarchy-build-iso index e411312..abb9cc9 100755 --- a/features/scripts/utils/nomarchy-build-iso +++ b/features/scripts/utils/nomarchy-build-iso @@ -5,7 +5,7 @@ echo "Building Nomarchy Installer ISO..." # The output will be a symlink named 'result' in the current directory -nix build .#nixosConfigurations.installerIso.config.system.build.isoImage +nix build .#nixosConfigurations.nomarchy-installer.config.system.build.isoImage if [ $? -eq 0 ]; then ISO_PATH=$(readlink -f result/iso/*.iso) diff --git a/features/scripts/utils/nomarchy-build-live-iso b/features/scripts/utils/nomarchy-build-live-iso new file mode 100755 index 0000000..d5266e2 --- /dev/null +++ b/features/scripts/utils/nomarchy-build-live-iso @@ -0,0 +1,17 @@ +#!/usr/bin/env bash + +# Build the Nomarchy Live ISO (Full Desktop Environment) using the flake. + +echo "Building Nomarchy Live ISO..." + +# The output will be a symlink named 'result' in the current directory +nix build .#nixosConfigurations.nomarchy-live.config.system.build.isoImage + +if [ $? -eq 0 ]; then + ISO_PATH=$(readlink -f result/iso/*.iso) + echo "Success! Live ISO built at: $ISO_PATH" + echo "You can now burn this to a USB drive using 'dd' or 'etcher'." +else + echo "Error: Live ISO build failed." + exit 1 +fi diff --git a/features/scripts/utils/nomarchy-on-boot b/features/scripts/utils/nomarchy-on-boot index 67d09c2..fe8138a 100755 --- a/features/scripts/utils/nomarchy-on-boot +++ b/features/scripts/utils/nomarchy-on-boot @@ -22,7 +22,7 @@ fi # This part ensures that if we are on an installed system, the correct # nixos-hardware module is selected in the configuration. # Skip this in the Live ISO environment -if [[ $USER == "nixos" ]] || [[ -f /etc/nixos/hosts/live-iso.nix ]]; then +if [[ $USER == "nixos" ]] || [[ -f /etc/nixos/hosts/nomarchy-live.nix ]]; then exit 0 fi diff --git a/features/scripts/utils/nomarchy-test-live-iso b/features/scripts/utils/nomarchy-test-live-iso index 4406e33..772c53e 100755 --- a/features/scripts/utils/nomarchy-test-live-iso +++ b/features/scripts/utils/nomarchy-test-live-iso @@ -1,14 +1,14 @@ #!/usr/bin/env bash # Build the Nomarchy graphical live ISO and boot it in QEMU for a -# try-before-install experience. The ISO is the `installerIsoGraphical` -# NixOS configuration — same Nomarchy system + Home Manager stack as +# try-before-install experience. The ISO is the `nomarchy-live` +# NixOS configuration - same Nomarchy system + Home Manager stack as # `nomarchy-test-vm`, just wrapped in an installable live medium. set -e echo "Building Nomarchy Live ISO..." -nix build .#nixosConfigurations.installerIsoGraphical.config.system.build.isoImage +nix build .#nixosConfigurations.nomarchy-live.config.system.build.isoImage ISO=$(ls -1 result/iso/*.iso 2>/dev/null | head -n 1) if [ -z "$ISO" ]; then @@ -22,11 +22,19 @@ OVMF_CANDIDATES=( "/run/current-system/sw/share/OVMF/OVMF_CODE.fd" "/run/current-system/sw/share/qemu/edk2-x86_64-code.fd" "/nix/var/nix/profiles/system/sw/share/OVMF/OVMF_CODE.fd" + "/usr/share/OVMF/OVMF_CODE.fd" ) BIOS_ARG=() for c in "${OVMF_CANDIDATES[@]}"; do if [ -f "$c" ]; then - BIOS_ARG=(-bios "$c") + # Use pflash for UEFI firmware. -bios is for legacy BIOS. + BIOS_ARG=(-drive "if=pflash,format=raw,readonly=on,file=$c") + + # Optional: Add matching VARS file if it exists. + VARS="${c%_CODE.fd}_VARS.fd" + if [ -f "$VARS" ]; then + BIOS_ARG+=(-drive "if=pflash,format=raw,readonly=on,file=$VARS") + fi break fi done diff --git a/flake.nix b/flake.nix index 648b9d5..d1004ff 100644 --- a/flake.nix +++ b/flake.nix @@ -104,7 +104,7 @@ nixosConfigurations = { # Minimal TTY installer ISO (new golden path) - installerIso = nixpkgs.lib.nixosSystem { + nomarchy-installer = nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs; }; modules = [ { @@ -112,7 +112,7 @@ nixpkgs.overlays = overlays; } "${nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix" - ./hosts/installer-iso.nix + ./hosts/nomarchy-installer.nix { system.stateVersion = "25.11"; networking.hostName = "nomarchy-installer"; @@ -129,7 +129,7 @@ nixpkgs.overlays = overlays; } "${nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix" - ./hosts/installer-iso.nix + ./hosts/nomarchy-installer.nix { system.stateVersion = "25.11"; networking.hostName = "nomarchy-installer-vm"; @@ -140,7 +140,7 @@ }; # Graphical installer ISO (legacy, for users who prefer GUI) - installerIsoGraphical = nixpkgs.lib.nixosSystem { + nomarchy-live = nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs; }; modules = [ { @@ -149,10 +149,11 @@ } "${nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-graphical-base.nix" home-manager.nixosModules.home-manager - ./hosts/live-iso.nix + ./hosts/nomarchy-live.nix ./core { system.stateVersion = "25.11"; + networking.hostName = "nomarchy-live"; services.displayManager.autoLogin.enable = true; services.displayManager.autoLogin.user = "nixos"; diff --git a/hosts/installer-iso.nix b/hosts/nomarchy-installer.nix similarity index 93% rename from hosts/installer-iso.nix rename to hosts/nomarchy-installer.nix index 1c9cb62..d5b6e79 100644 --- a/hosts/installer-iso.nix +++ b/hosts/nomarchy-installer.nix @@ -8,6 +8,7 @@ { imports = [ ../core/system/nix.nix + ../core/system/branding.nix ]; # Base installation media configuration is handled by the module imported in flake.nix @@ -24,6 +25,10 @@ i18n.defaultLocale = lib.mkDefault "en_US.UTF-8"; + # ISO Branding + isoImage.volumeID = lib.mkForce "NOMARCHY_INSTALLER"; + isoImage.edition = lib.mkForce "minimal"; + # Essential packages for installation environment.systemPackages = with pkgs; [ # Core utilities @@ -83,6 +88,11 @@ mode = "0755"; }; + environment.etc."hardware-db.sh" = { + source = ../installer/hardware-db.sh; + mode = "0644"; + }; + # Symlink for easy access (merged into systemPackages above) # The nomarchy-install script is created by writeShellScriptBin in the main list diff --git a/hosts/live-iso.nix b/hosts/nomarchy-live.nix similarity index 95% rename from hosts/live-iso.nix rename to hosts/nomarchy-live.nix index 42a1aa4..d317a45 100644 --- a/hosts/live-iso.nix +++ b/hosts/nomarchy-live.nix @@ -8,6 +8,10 @@ i18n.defaultLocale = lib.mkDefault "en_US.UTF-8"; services.xserver.xkb.layout = lib.mkDefault "us"; + # ISO Branding + isoImage.volumeID = lib.mkForce "NOMARCHY_LIVE"; + isoImage.edition = lib.mkForce "graphical"; + # Home Manager activation for the nixos live user is provided by the # home-manager.nixosModules.home-manager module wired up in flake.nix. diff --git a/installer/install.sh b/installer/install.sh index 2773764..924083e 100755 --- a/installer/install.sh +++ b/installer/install.sh @@ -125,7 +125,7 @@ header() { nrun gum style \ --foreground 212 --border-foreground 212 --border double \ --align center --width 60 --margin "1 2" --padding "2 4" \ - "NOMARCHY INSTALLER" "NixOS with Omarchy flavor" + "NOMARCHY INSTALLER" "Nomarchy Distribution" echo "" } @@ -876,10 +876,10 @@ execute_installation() { success "Impermanence configured" fi - # 9.7 Install the NixOS system from the freshly-generated flake. + # 9.7 Install the Nomarchy system from the freshly-generated flake. info "Running nixos-install (this will take a while)..." nixos-install --flake "/mnt/etc/nixos#$HOSTNAME" --no-root-passwd - success "NixOS installed" + success "Nomarchy installed" # 9.8 Activate Home Manager for $USERNAME inside the new system so the # user's first login already has Nomarchy's dotfiles. `home-manager diff --git a/themes/engine/plymouth/nomarchy.plymouth b/themes/engine/plymouth/nomarchy.plymouth index cbacec9..c082755 100644 --- a/themes/engine/plymouth/nomarchy.plymouth +++ b/themes/engine/plymouth/nomarchy.plymouth @@ -1,6 +1,6 @@ [Plymouth Theme] Name=Nomarchy -Description=Omarchy splash screen. +Description=Nomarchy splash screen. ModuleName=script [script] diff --git a/themes/engine/plymouth/nomarchy.script b/themes/engine/plymouth/nomarchy.script index 678bd50..d012882 100644 --- a/themes/engine/plymouth/nomarchy.script +++ b/themes/engine/plymouth/nomarchy.script @@ -1,4 +1,4 @@ -# Omarchy Plymouth Theme Script +# Nomarchy Plymouth Theme Script Window.SetBackgroundTopColor(0.101, 0.105, 0.149); Window.SetBackgroundBottomColor(0.101, 0.105, 0.149);