{ config, lib, ... }: let cfg = config.nmasur.presets.programs.k9s; in { options.nmasur.presets.programs.k9s.enable = lib.mkEnableOption "K9S Kubernetes TUI"; config = lib.mkIf cfg.enable { programs.fish.shellAbbrs = { ks = "k9s"; }; # Terminal Kubernetes UI programs.k9s = { enable = true; settings = { k9s = { ui = { enableMouse = true; headless = true; logoless = true; crumbsless = false; skin = "main"; }; }; }; skins = { main = { k9s = { body = { fgColor = config.theme.colors.base06; bgColor = "default"; logoColor = config.theme.colors.base02; # *blue ? }; # Search bar prompt = { fgColor = config.theme.colors.base06; bgColor = "default"; suggestColor = config.theme.colors.base03; }; # Header left side info = { fgColor = config.theme.colors.base04; sectionColor = config.theme.colors.base05; }; dialog = { fgColor = config.theme.colors.base06; bgColor = "default"; buttonFgColor = config.theme.colors.base06; buttonBgColor = config.theme.colors.base0E; buttonFocusFgColor = config.theme.colors.base07; buttonFocusBgColor = config.theme.colors.base02; # *cyan labelFgColor = config.theme.colors.base09; fieldFgColor = config.theme.colors.base06; }; frame = { border = { fgColor = config.theme.colors.base01; focusColor = config.theme.colors.base06; }; menu = { fgColor = config.theme.colors.base06; keyColor = config.theme.colors.base0E; # *magenta numKeyColor = config.theme.colors.base0E; # *magenta }; crumbs = { fgColor = config.theme.colors.base06; bgColor = config.theme.colors.base01; activeColor = config.theme.colors.base03; }; status = { newColor = config.theme.colors.base04; # *cyan modifyColor = config.theme.colors.base0D; # *blue addColor = config.theme.colors.base0B; # *green errorColor = config.theme.colors.base08; # *red highlightColor = config.theme.colors.base09; # *orange killColor = config.theme.colors.base03; # *comment completedColor = config.theme.colors.base03; # *comment }; title = { fgColor = config.theme.colors.base06; bgColor = "default"; highlightColor = config.theme.colors.base09; # *orange counterColor = config.theme.colors.base0D; # *blue filterColor = config.theme.colors.base0E; # *magenta }; }; views = { charts = { bgColor = "default"; defaultDialColors = [ config.theme.colors.base0D config.theme.colors.base08 ]; # - *blue # - *red defaultChartColors = [ config.theme.colors.base0D config.theme.colors.base08 ]; # - *blue # - *red }; table = { # List of resources fgColor = config.theme.colors.base06; bgColor = "default"; # Row selection cursorFgColor = config.theme.colors.base07; cursorBgColor = config.theme.colors.base01; # Header row header = { fgColor = config.theme.colors.base0D; bgColor = "default"; sorterColor = config.theme.colors.base0A; # *selection }; }; xray = { fgColor = config.theme.colors.base06; bgColor = "default"; cursorColor = config.theme.colors.base06; graphicColor = config.theme.colors.base0D; showIcons = false; }; yaml = { keyColor = config.theme.colors.base0D; colonColor = config.theme.colors.base04; fgColor = config.theme.colors.base03; }; logs = { fgColor = config.theme.colors.base06; bgColor = "default"; indicator = { fgColor = config.theme.colors.base06; bgColor = "default"; }; }; }; }; }; }; }; }; }