# 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"; }
        ];
      };
    };
  };
}
