Files
Nomarchy/modules/home/fastfetch.nix
Bernardo Magri 69f7ae9051 feat(branding): fastfetch logo + Nomarchy.ttf glyph in the Waybar button
Two branding follow-ups, using the vendored legacy assets:

- fastfetch (modules/home/fastfetch.nix, nomarchy.fastfetch.enable): the
  vector logo recolored to the palette accent and rendered to compact
  block-art via chafa at build time (so it tracks the theme), fronting a
  curated module list. Replaces the oversized legacy ASCII.
- Waybar logo glyph: vendor Nomarchy.ttf (modules/nixos/branding/),
  install it via fonts.packages, and switch the summer-day/night menu
  buttons to its U+F000 mark with `font-family: Nomarchy` pinned in CSS
  (Nerd Fonts also occupy U+F000, so the pin is required). Glyph stored as
  the  JSON escape for robustness.

Also log a roadmap item for a quality-of-life alias collection.

Verified: font family resolves as "Nomarchy" and the ttf maps U+F000;
both summer jsonc parse; chafa logo builds headless; nix flake check passes.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-13 22:07:28 +01:00

51 lines
1.9 KiB
Nix

# fastfetch — system summary fronted by the Nomarchy monogram. The logo is
# rendered from the vendored vector mark (modules/nixos/branding/logo.svg)
# via chafa at build time, recolored to the palette accent — so it's a
# compact, themed block-art logo that tracks the theme on each
# home-manager switch (rather than the oversized legacy ASCII).
{ config, lib, pkgs, ... }:
let
cfg = config.nomarchy;
c = cfg.theme.colors;
logo = pkgs.runCommand "nomarchy-fastfetch-logo"
{ nativeBuildInputs = [ pkgs.imagemagick pkgs.librsvg pkgs.chafa ]; } ''
rsvg-convert -w 220 ${../nixos/branding/logo.svg} > logo.png
magick logo.png -fill "${c.accent}" -colorize 100 logo-c.png
chafa --format symbols --symbols block --size 20x10 --colors full --polite on logo-c.png > $out
'';
in
{
config = lib.mkIf cfg.fastfetch.enable {
programs.fastfetch = {
enable = true;
settings = {
logo = {
type = "file-raw";
source = "${logo}";
padding = { top = 1; left = 2; right = 3; };
};
display.separator = " ";
modules = [
"break"
{ type = "os"; key = "distro"; keyColor = "blue"; }
{ type = "kernel"; key = "kernel"; keyColor = "blue"; }
{ type = "uptime"; key = "uptime"; keyColor = "blue"; }
{ type = "packages"; key = "pkgs"; keyColor = "blue"; }
{ type = "wm"; key = "wm"; keyColor = "blue"; }
{ type = "shell"; key = "shell"; keyColor = "blue"; }
{ type = "terminal"; key = "term"; keyColor = "blue"; }
"break"
{ type = "cpu"; key = "cpu"; keyColor = "magenta"; }
{ type = "gpu"; key = "gpu"; keyColor = "magenta"; }
{ type = "memory"; key = "memory"; keyColor = "magenta"; }
{ type = "disk"; key = "disk"; keyColor = "magenta"; }
"break"
{ type = "colors"; symbol = "circle"; }
];
};
};
};
}