add kakoune module
This commit is contained in:
		
							parent
							
								
									085772367c
								
							
						
					
					
						commit
						fb7b7381bb
					
				
					 2 changed files with 132 additions and 120 deletions
				
			
		
							
								
								
									
										121
									
								
								user/home.nix
									
										
									
									
									
								
							
							
						
						
									
										121
									
								
								user/home.nix
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -123,6 +123,7 @@ in {
 | 
			
		|||
  imports = [
 | 
			
		||||
    ./waybar.nix
 | 
			
		||||
    ./helix.nix
 | 
			
		||||
    ./kakoune.nix
 | 
			
		||||
  ];
 | 
			
		||||
  # Home Manager needs a bit of information about you and the
 | 
			
		||||
  # paths it should manage.
 | 
			
		||||
| 
						 | 
				
			
			@ -356,130 +357,10 @@ in {
 | 
			
		|||
        }
 | 
			
		||||
        # {%@@ endif @@%}
 | 
			
		||||
      ];
 | 
			
		||||
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
  programs.kakoune = {
 | 
			
		||||
      enable = true;
 | 
			
		||||
      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) [
 | 
			
		||||
      ./kak/filetypes.kak
 | 
			
		||||
      ./kak/hooks.kak
 | 
			
		||||
      ./kak/indent.kak
 | 
			
		||||
      ./kak/keys.kak
 | 
			
		||||
      ./kak/plug.kak
 | 
			
		||||
      ./kak/usermode.kak
 | 
			
		||||
    ]) + ''
 | 
			
		||||
 | 
			
		||||
      set global scrolloff 10,20
 | 
			
		||||
      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";
 | 
			
		||||
    }));
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  home.sessionVariables = {
 | 
			
		||||
    EDITOR = "kak";
 | 
			
		||||
    VOLUME_CHANGE_SOUND =
 | 
			
		||||
      "${pkgs.sound-theme-freedesktop}/share/sounds/freedesktop/stereo/audio-volume-change.oga";
 | 
			
		||||
  };
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										131
									
								
								user/kakoune.nix
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										131
									
								
								user/kakoune.nix
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,131 @@
 | 
			
		|||
{ config, pkgs, lib, font, ... }: let
 | 
			
		||||
  inherit (import ./variables.nix) key theme color accent font;
 | 
			
		||||
in {
 | 
			
		||||
  config = {
 | 
			
		||||
    programs.kakoune = {
 | 
			
		||||
        enable = true;
 | 
			
		||||
        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) [
 | 
			
		||||
        ./kak/filetypes.kak
 | 
			
		||||
        ./kak/hooks.kak
 | 
			
		||||
        ./kak/indent.kak
 | 
			
		||||
        ./kak/keys.kak
 | 
			
		||||
        ./kak/plug.kak
 | 
			
		||||
        ./kak/usermode.kak
 | 
			
		||||
      ]) + ''
 | 
			
		||||
 | 
			
		||||
        set global scrolloff 10,20
 | 
			
		||||
        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";
 | 
			
		||||
      }));
 | 
			
		||||
    };
 | 
			
		||||
    home.packages = with pkgs; [
 | 
			
		||||
      pkgs.unstable.helix
 | 
			
		||||
    ];
 | 
			
		||||
    home.sessionVariables = {
 | 
			
		||||
      EDITOR = "kak";
 | 
			
		||||
    };
 | 
			
		||||
  };
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue