feat(branding): drop the nixpkgs codename — "Nomarchy 26.05", not "(Yarara)"
All checks were successful
Check / eval (push) Successful in 3m43s

Yarara is nixpkgs' release name. Carrying it in PRETTY_NAME told users
something true about our upstream and nothing about our product, in the one
string every fetch tool and greeter reads.

Upstream hardcodes the codename into VERSION, PRETTY_NAME and
VERSION_CODENAME (misc/version.nix) with no switch, and
`system.nixos.codeName = ""` is the wrong lever — it renders "26.05 ()".
So the assembled strings are overridden through the merge hooks upstream
does provide (extraOSReleaseArgs / extraLSBReleaseArgs), which is already
where our project URLs live. lsb-release gets the same treatment; it
carried the codename in three fields of its own.

Empty VERSION_CODENAME/DISTRIB_CODENAME is deliberate: `//` cannot remove a
key, os-release(5) makes every field optional, and the file already ships
ANSI_COLOR="" and IMAGE_ID="".

nixos-version still prints "(Yarara)" and is left alone on purpose: that
command reports which nixpkgs the system was built from — the one question
the codename actually answers. Reaching it would mean patching a nixpkgs
script for no gain.

Verified on the built system: PRETTY_NAME="Nomarchy 26.05", VERSION="26.05",
VERSION_ID="26.05"; lsb DISTRIB_DESCRIPTION="Nomarchy 26.05",
LSB_VERSION="26.05". fastfetch's os line reads PRETTY_NAME, so it follows.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-16 14:09:00 +01:00
parent a6f86cf575
commit 4a0b76cc97
2 changed files with 35 additions and 0 deletions

View File

@@ -55,11 +55,32 @@ in
# restore them pointing at the project instead.
system.nixos.distroName = lib.mkDefault "Nomarchy";
system.nixos.distroId = lib.mkDefault "nomarchy";
# No codename. Upstream hardcodes it into three fields —
# VERSION = "${release} (${codeName})", PRETTY_NAME likewise, plus
# VERSION_CODENAME (misc/version.nix) — so "Nomarchy 26.05 (Yarara)" read
# as if Yarara were *our* release name. It is nixpkgs': ours is the number,
# and the number is what tells you what you are running. Setting
# `system.nixos.codeName = ""` is the wrong lever — it renders "26.05 ()" —
# so override the assembled strings through the merge hook upstream
# provides. The empty VERSION_CODENAME is deliberate and in keeping with
# the file's own style (ANSI_COLOR="", IMAGE_ID="" …): the key cannot be
# removed through `//`, and os-release(5) makes every field optional.
# `nixos-version` still prints "(Yarara)" and is left alone on purpose —
# that command reports the *nixpkgs* release this system was built from,
# which is exactly when the codename is the honest answer.
system.nixos.extraOSReleaseArgs = lib.mkDefault {
HOME_URL = "https://git.bemagri.xyz/bernardo/Nomarchy";
DOCUMENTATION_URL = "https://git.bemagri.xyz/bernardo/Nomarchy";
SUPPORT_URL = "https://git.bemagri.xyz/bernardo/Nomarchy";
BUG_REPORT_URL = "https://git.bemagri.xyz/bernardo/Nomarchy/issues";
VERSION = config.system.nixos.release;
VERSION_CODENAME = "";
PRETTY_NAME = "${config.system.nixos.distroName} ${config.system.nixos.release}";
};
system.nixos.extraLSBReleaseArgs = lib.mkDefault {
LSB_VERSION = config.system.nixos.release;
DISTRIB_CODENAME = "";
DISTRIB_DESCRIPTION = "${config.system.nixos.distroName} ${config.system.nixos.release}";
};
# MOTD on TTY/SSH login (the desktop auto-logs into Hyprland, so this