{ lib, pkgs, config, ... }: let inherit (lib) optionalAttrs; inherit (config.local.systemVars) username; styleCfg = config.local.style; # because someone thought this was a great idea: https://github.com/tinted-theming/schemes/commit/61058a8d2e2bd4482b53d57a68feb56cdb991f0b palette = builtins.mapAttrs (_: color: lib.removePrefix "#" color) styleCfg.scheme.palette; toINI = lib.generators.toINI {}; mkColors = palette: { background = palette.base00; foreground = palette.base05; regular0 = palette.base00; regular1 = palette.base08; regular2 = palette.base0B; regular3 = palette.base0A; regular4 = palette.base0D; regular5 = palette.base0E; regular6 = palette.base0C; regular7 = palette.base05; bright0 = palette.base02; bright1 = palette.base08; bright2 = palette.base0B; bright3 = palette.base0A; bright4 = palette.base0D; bright5 = palette.base0E; bright6 = palette.base0C; bright7 = palette.base07; "16" = palette.base09; "17" = palette.base0F; "18" = palette.base01; "19" = palette.base02; "20" = palette.base04; "21" = palette.base06; }; in { config = lib.mkIf config.local.modules.hyprland.enable { hjem.users.${username} = { packages = [pkgs.foot]; files = { ".config/foot/foot.ini".text = toINI { main = { term = "xterm-256color"; font = "monospace:size=14"; shell = "${pkgs.nushell}/bin/nu"; }; colors = optionalAttrs styleCfg.enable (mkColors palette); }; }; }; }; }