{ lib, ... }:

{
  programs = {
    fish.shellAliases.fetch = "fastfetch";

    fastfetch = {
      enable = true;
      settings = {
        logo = {
          source = "${lib.custom.relativeToRoot "shared/assets/Catppuccin.png"}";
          type = "kitty";
          height = 18;
          padding.top = 2;
        };
        display.separator = " ";
        modules =
          let
            keyColor = "34";
            module = type: key: {
              inherit type key keyColor;
            };
            formatModule = type: key: format: {
              inherit
                type
                key
                format
                keyColor
                ;
            };
          in
          [
            "break"
            "break"
            {
              type = "title";
              keyWidth = 10;
            }
            "break"
            (module "os" " ")
            (module "kernel" " ")
            (formatModule "packages" " " "{} (nixpkgs)")
            (module "shell" " ")
            (module "terminal" " ")
            (module "wm" " ")
            (module "theme" " ")
            (module "cursor" " ")
            (module "terminalfont" " ")
            (module "uptime" " ")
            (formatModule "datetime" " " "{1}-{3}-{11}")
            (module "cpu" " ")
            (module "gpu" "󰤽 ")
            (module "sound" " ")
            (module "lm" " ")
            "break"
            "colors"
            "break"
            "break"
          ];
      };
    };
  };
}
