kakoune: extract colors
This commit is contained in:
		
							parent
							
								
									6dc3a96a30
								
							
						
					
					
						commit
						87dd29d11a
					
				
					 2 changed files with 114 additions and 107 deletions
				
			
		
							
								
								
									
										109
									
								
								user/kakoune/colors.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										109
									
								
								user/kakoune/colors.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,109 @@
 | 
			
		|||
{ pkgs, lib, color, accent }:
 | 
			
		||||
let
 | 
			
		||||
  colors = lib.mapAttrs (_: lib.replaceStrings [ "#" ] [ "rgb:" ]) {
 | 
			
		||||
    accent_fg = accent.fg;
 | 
			
		||||
    accent_color = accent.color;
 | 
			
		||||
    bg_light = color.bg_light;
 | 
			
		||||
    bg_dark = color.bg_dark;
 | 
			
		||||
    nontxt = color.nontxt;
 | 
			
		||||
    orange = color.normal.orange;
 | 
			
		||||
    brown = color.normal.brown;
 | 
			
		||||
  };
 | 
			
		||||
in
 | 
			
		||||
with colors;
 | 
			
		||||
''
 | 
			
		||||
  face global crosshairs_line     default,${bg_dark}
 | 
			
		||||
  face global crosshairs_column   default+b
 | 
			
		||||
 | 
			
		||||
  # For Code
 | 
			
		||||
  face global value magenta
 | 
			
		||||
  face global type yellow
 | 
			
		||||
  face global variable blue
 | 
			
		||||
  face global module ${brown}
 | 
			
		||||
  face global function ${orange}
 | 
			
		||||
  face global string green
 | 
			
		||||
  face global keyword ${accent_color}
 | 
			
		||||
  face global operator yellow
 | 
			
		||||
  face global attribute cyan
 | 
			
		||||
  face global comment ${bg_light}
 | 
			
		||||
  face global documentation comment
 | 
			
		||||
  face global meta +i@function
 | 
			
		||||
  face global builtin blue
 | 
			
		||||
 | 
			
		||||
  # For markup
 | 
			
		||||
  face global title blue
 | 
			
		||||
  face global header cyan
 | 
			
		||||
  face global mono green
 | 
			
		||||
  face global block magenta
 | 
			
		||||
  face global link cyan
 | 
			
		||||
  face global bullet cyan
 | 
			
		||||
  face global list yellow
 | 
			
		||||
 | 
			
		||||
  # builtin faces
 | 
			
		||||
  face global Default default,default
 | 
			
		||||
 | 
			
		||||
  face global PrimaryCursor      ${accent_fg},${accent_color}+fg
 | 
			
		||||
  face global PrimaryCursorEol   PrimaryCursor
 | 
			
		||||
  face global PrimarySelection   default,${bg_light}+f
 | 
			
		||||
 | 
			
		||||
  face global SecondaryCursor    default,default+rfg
 | 
			
		||||
  face global SecondaryCursorEol SecondaryCursor
 | 
			
		||||
  face global SecondarySelection PrimarySelection
 | 
			
		||||
 | 
			
		||||
  face global InactiveCursor     ${accent_fg},${bg_light}+fg
 | 
			
		||||
 | 
			
		||||
  face global MenuForeground ${accent_fg},${accent_color}
 | 
			
		||||
  face global MenuBackground default,${bg_dark}
 | 
			
		||||
  face global MenuInfo cyan
 | 
			
		||||
 | 
			
		||||
  face global Information default,${bg_dark}
 | 
			
		||||
  face global Error default,red+g
 | 
			
		||||
 | 
			
		||||
  face global StatusLine      %sh{
 | 
			
		||||
      printf "rgb:"
 | 
			
		||||
      head /dev/urandom |
 | 
			
		||||
      base64 |
 | 
			
		||||
      rg --text -o "${color.random_range}" |
 | 
			
		||||
      head -n 6 |
 | 
			
		||||
      sd '\n' ""
 | 
			
		||||
  }
 | 
			
		||||
  face global StatusLineMode  StatusLine
 | 
			
		||||
  face global StatusLineInfo  StatusLine
 | 
			
		||||
  face global StatusLineValue StatusLine
 | 
			
		||||
  face global StatusCursor    ${accent_fg},${accent_color}
 | 
			
		||||
 | 
			
		||||
  face global Prompt yellow,default
 | 
			
		||||
  try %{add-highlighter global/ show-matching}
 | 
			
		||||
  face global MatchingChar ${accent_color},default+b
 | 
			
		||||
 | 
			
		||||
  # Goodies
 | 
			
		||||
  try %{add-highlighter global/number-lines number-lines -relative -hlcursor}
 | 
			
		||||
  face global LineNumbers         ${bg_light},default
 | 
			
		||||
  face global LineNumberCursor    default,${bg_dark}
 | 
			
		||||
  face global LineNumbersWrapped  red,default
 | 
			
		||||
 | 
			
		||||
  try %{add-highlighter global/ show-whitespaces}
 | 
			
		||||
  face global Whitespace ${nontxt},default+f
 | 
			
		||||
  face global BufferPadding ${nontxt},default
 | 
			
		||||
  ## highlight trailing whitespace
 | 
			
		||||
  # add-highlighter global/ regex '\h*$' 0:red,red+u
 | 
			
		||||
 | 
			
		||||
  face global Reference default+bu
 | 
			
		||||
  face global InlayHint ${bg_light}+buif
 | 
			
		||||
 | 
			
		||||
  # Lsp
 | 
			
		||||
'' + (
 | 
			
		||||
  lib.concatStringsSep "\n" (lib.mapAttrsToList
 | 
			
		||||
    (name: color: ''
 | 
			
		||||
      face global HighlightDiagnostic${name} ${color},default+bu
 | 
			
		||||
      face global Diagnostic${name} ${color},default+bu
 | 
			
		||||
      face global TextDiagnostic${name} ${color},default+b
 | 
			
		||||
      face global InlayDiagnostic${name} ${color},default+br
 | 
			
		||||
    '')
 | 
			
		||||
    {
 | 
			
		||||
      Error = "red";
 | 
			
		||||
      Warning = "yellow";
 | 
			
		||||
      Hint = "blue";
 | 
			
		||||
    })
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1,6 +1,6 @@
 | 
			
		|||
{ config, pkgs, lib, font, ... }:
 | 
			
		||||
{ config, pkgs, lib, ... }:
 | 
			
		||||
let
 | 
			
		||||
  inherit (pkgs.uservars) key theme accent font dmenu editor;
 | 
			
		||||
  inherit (pkgs.uservars) key dmenu editor theme accent;
 | 
			
		||||
  inherit (theme) color;
 | 
			
		||||
in
 | 
			
		||||
{
 | 
			
		||||
| 
						 | 
				
			
			@ -11,18 +11,6 @@ in
 | 
			
		|||
        kak-lsp
 | 
			
		||||
      ];
 | 
			
		||||
      extraConfig =
 | 
			
		||||
        let
 | 
			
		||||
          colors = lib.mapAttrs (_: lib.replaceStrings [ "#" ] [ "rgb:" ]) {
 | 
			
		||||
            accent_fg = accent.fg;
 | 
			
		||||
            accent_color = accent.color;
 | 
			
		||||
            bg_light = color.bg_light;
 | 
			
		||||
            bg_dark = color.bg_dark;
 | 
			
		||||
            nontxt = color.nontxt;
 | 
			
		||||
            orange = color.normal.orange;
 | 
			
		||||
            brown = color.normal.brown;
 | 
			
		||||
          };
 | 
			
		||||
        in
 | 
			
		||||
        with colors;
 | 
			
		||||
        lib.concatStringsSep "\n"
 | 
			
		||||
          (map (lib.readFile) ([
 | 
			
		||||
            ./filetypes.kak
 | 
			
		||||
| 
						 | 
				
			
			@ -39,99 +27,9 @@ in
 | 
			
		|||
        set global autoreload yes
 | 
			
		||||
        set global startup_info_version 20200901
 | 
			
		||||
 | 
			
		||||
      '' + ''
 | 
			
		||||
          face global crosshairs_line     default,${bg_dark}
 | 
			
		||||
          face global crosshairs_column   default+b
 | 
			
		||||
 | 
			
		||||
          # For Code
 | 
			
		||||
          face global value magenta
 | 
			
		||||
          face global type yellow
 | 
			
		||||
          face global variable blue
 | 
			
		||||
          face global module ${brown}
 | 
			
		||||
          face global function ${orange}
 | 
			
		||||
          face global string green
 | 
			
		||||
          face global keyword ${accent_color}
 | 
			
		||||
          face global operator yellow
 | 
			
		||||
          face global attribute cyan
 | 
			
		||||
          face global comment ${bg_light}
 | 
			
		||||
          face global documentation comment
 | 
			
		||||
          face global meta +i@function
 | 
			
		||||
          face global builtin blue
 | 
			
		||||
 | 
			
		||||
          # For markup
 | 
			
		||||
          face global title blue
 | 
			
		||||
          face global header cyan
 | 
			
		||||
          face global mono green
 | 
			
		||||
          face global block magenta
 | 
			
		||||
          face global link cyan
 | 
			
		||||
          face global bullet cyan
 | 
			
		||||
          face global list yellow
 | 
			
		||||
 | 
			
		||||
          # builtin faces
 | 
			
		||||
          face global Default default,default
 | 
			
		||||
 | 
			
		||||
          face global PrimaryCursor      ${accent_fg},${accent_color}+fg
 | 
			
		||||
          face global PrimaryCursorEol   PrimaryCursor
 | 
			
		||||
          face global PrimarySelection   default,${bg_light}+f
 | 
			
		||||
 | 
			
		||||
          face global SecondaryCursor    default,default+rfg
 | 
			
		||||
          face global SecondaryCursorEol SecondaryCursor
 | 
			
		||||
          face global SecondarySelection PrimarySelection
 | 
			
		||||
 | 
			
		||||
          face global InactiveCursor     ${accent_fg},${bg_light}+fg
 | 
			
		||||
 | 
			
		||||
          face global MenuForeground ${accent_fg},${accent_color}
 | 
			
		||||
          face global MenuBackground default,${bg_dark}
 | 
			
		||||
          face global MenuInfo cyan
 | 
			
		||||
 | 
			
		||||
          face global Information default,${bg_dark}
 | 
			
		||||
          face global Error default,red+g
 | 
			
		||||
 | 
			
		||||
          face global StatusLine      %sh{
 | 
			
		||||
              printf "rgb:"
 | 
			
		||||
              head /dev/urandom |
 | 
			
		||||
              base64 |
 | 
			
		||||
              rg --text -o "${color.random_range}" |
 | 
			
		||||
              head -n 6 |
 | 
			
		||||
              sd '\n' ""
 | 
			
		||||
          }
 | 
			
		||||
          face global StatusLineMode  StatusLine
 | 
			
		||||
          face global StatusLineInfo  StatusLine
 | 
			
		||||
          face global StatusLineValue StatusLine
 | 
			
		||||
          face global StatusCursor    ${accent_fg},${accent_color}
 | 
			
		||||
 | 
			
		||||
          face global Prompt yellow,default
 | 
			
		||||
          try %{add-highlighter global/ show-matching}
 | 
			
		||||
          face global MatchingChar ${accent_color},default+b
 | 
			
		||||
 | 
			
		||||
          # Goodies
 | 
			
		||||
          try %{add-highlighter global/number-lines number-lines -relative -hlcursor}
 | 
			
		||||
          face global LineNumbers         ${bg_light},default
 | 
			
		||||
          face global LineNumberCursor    default,${bg_dark}
 | 
			
		||||
          face global LineNumbersWrapped  red,default
 | 
			
		||||
 | 
			
		||||
          try %{add-highlighter global/ show-whitespaces}
 | 
			
		||||
          face global Whitespace ${nontxt},default+f
 | 
			
		||||
          face global BufferPadding ${nontxt},default
 | 
			
		||||
          ## highlight trailing whitespace
 | 
			
		||||
          # add-highlighter global/ regex '\h*$' 0:red,red+u
 | 
			
		||||
 | 
			
		||||
          face global Reference default+bu
 | 
			
		||||
          face global InlayHint ${bg_light}+buif
 | 
			
		||||
 | 
			
		||||
          # Lsp
 | 
			
		||||
        '' + (lib.concatStringsSep "\n" (lib.mapAttrsToList
 | 
			
		||||
          (name: color: ''
 | 
			
		||||
            face global HighlightDiagnostic${name} ${color},default+bu
 | 
			
		||||
            face global Diagnostic${name} ${color},default+bu
 | 
			
		||||
            face global TextDiagnostic${name} ${color},default+b
 | 
			
		||||
            face global InlayDiagnostic${name} ${color},default+br
 | 
			
		||||
          '')
 | 
			
		||||
          {
 | 
			
		||||
            Error = "red";
 | 
			
		||||
            Warning = "yellow";
 | 
			
		||||
            Hint = "blue";
 | 
			
		||||
          }));
 | 
			
		||||
      '' + (import ./colors.nix {
 | 
			
		||||
          inherit pkgs lib color accent;
 | 
			
		||||
        });
 | 
			
		||||
    };
 | 
			
		||||
    home.file = { ".config/kak-lsp/kak-lsp.toml".source = ./kak-lsp.toml; };
 | 
			
		||||
    home.packages = with pkgs; [
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue