mirror of
				https://github.com/nmasur/dotfiles
				synced 2025-11-04 11:43:16 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			156 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			156 lines
		
	
	
		
			4.9 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
{
 | 
						|
  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";
 | 
						|
                };
 | 
						|
              };
 | 
						|
            };
 | 
						|
          };
 | 
						|
        };
 | 
						|
      };
 | 
						|
    };
 | 
						|
 | 
						|
  };
 | 
						|
}
 |