diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 47ecc96..62be6e2 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -265,7 +265,15 @@ "Bash(nix-instantiate --parse modules/home/rofi.nix)", "Bash(nix-instantiate --parse modules/home/shell.nix)", "Bash(command -v nix)", - "Bash(nix-instantiate --parse modules/home/keys.nix)" + "Bash(nix-instantiate --parse modules/home/keys.nix)", + "Bash(cp /home/bernardo/Projects/Nomarchy/modules/nixos/plymouth/logo.png /tmp/logo-orig.png)", + "Bash(nix run *)", + "Bash(cp /tmp/logo-text.png /home/bernardo/Projects/Nomarchy/.tmp-logo-preview.png)", + "Bash(cp /tmp/logo-text.png /home/bernardo/Projects/Nomarchy/preview-logo.png)", + "Bash(nix-instantiate --parse modules/nixos/plymouth.nix)", + "Bash(echo \"parse OK\")", + "Bash(echo \"=== build the plymouth theme derivation directly ===\")", + "Bash(nix-instantiate --parse modules/nixos/default.nix)" ] } } diff --git a/README.md b/README.md index e124de8..56e9c68 100644 --- a/README.md +++ b/README.md @@ -316,8 +316,10 @@ close · `SUPER+1..9` workspaces · `Print` region screenshot. `nomarchy.osd.*`, media keys drive `swayosd-client`, themed from the JSON) - **Distro branding, round 2:** `distroName = "Nomarchy"` ships (os-release `PRETTY_NAME`, systemd-boot entries, ISO menu label). + ✓ tuigreet greeting (`Welcome to `) and a branded `users.motd` + (doubling as a helper cheat sheet), both keyed off `distroName`. Remaining: `isoImage.splashImage`/`grubTheme` art for the ISO boot - screen, tuigreet/MOTD text, and the `distroId` question (it changes + screen (needs a designed asset), and the `distroId` question (it changes `DEFAULT_HOSTNAME` and upstream `isNixos` checks — needs a test pass; nixos-* CLI names stay regardless) - **Theme-switch feedback:** ✓ the "rebuilding…" notification is now diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix index 6495f15..ebc9231 100644 --- a/modules/nixos/default.nix +++ b/modules/nixos/default.nix @@ -9,6 +9,9 @@ let cfg = config.nomarchy.system; + # Reused by the greeter banner and MOTD so the brand name lives in one + # place (system.nixos.distroName, set below). + distroName = config.system.nixos.distroName; in { imports = [ ./options.nix ./plymouth.nix ./file-manager.nix ]; @@ -20,6 +23,19 @@ in # DEFAULT_HOSTNAME and upstream isNixos checks (see roadmap). system.nixos.distroName = lib.mkDefault "Nomarchy"; + # MOTD on TTY/SSH login (the desktop auto-logs into Hyprland, so this + # is mostly seen over SSH or on a bare console). Branded, and doubles + # as a cheat sheet for the distro's own helpers. + users.motd = lib.mkDefault '' + + ${distroName} — a NixOS desktop, themed from one JSON. + + sys-update update inputs + rebuild the system + home-update apply home/theme changes (no sudo) + nomarchy-theme-sync apply switch the whole palette + SUPER+? keybindings cheatsheet + ''; + # Unfree allowed distro-wide: pragmatic-desktop territory (vendor # GPU/wifi drivers, firmware, fonts, …). The custom nixpkgs-config # type can't carry a nested mkDefault; disagree with @@ -42,7 +58,7 @@ in default_session = { # start-hyprland is Hyprland 0.55's watchdog launcher; running # the bare binary makes every session print a warning. - command = lib.mkDefault "${pkgs.tuigreet}/bin/tuigreet --time --remember --cmd start-hyprland"; + command = lib.mkDefault "${pkgs.tuigreet}/bin/tuigreet --time --remember --greeting 'Welcome to ${distroName}' --cmd start-hyprland"; user = "greeter"; }; # Boot straight into the session once; logout → normal greeter.