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 = [
 | 
					  imports = [
 | 
				
			||||||
    ./waybar.nix
 | 
					    ./waybar.nix
 | 
				
			||||||
    ./helix.nix
 | 
					    ./helix.nix
 | 
				
			||||||
 | 
					    ./kakoune.nix
 | 
				
			||||||
  ];
 | 
					  ];
 | 
				
			||||||
  # Home Manager needs a bit of information about you and the
 | 
					  # Home Manager needs a bit of information about you and the
 | 
				
			||||||
  # paths it should manage.
 | 
					  # paths it should manage.
 | 
				
			||||||
| 
						 | 
					@ -356,130 +357,10 @@ in {
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        # {%@@ endif @@%}
 | 
					        # {%@@ 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 = {
 | 
					  home.sessionVariables = {
 | 
				
			||||||
    EDITOR = "kak";
 | 
					 | 
				
			||||||
    VOLUME_CHANGE_SOUND =
 | 
					    VOLUME_CHANGE_SOUND =
 | 
				
			||||||
      "${pkgs.sound-theme-freedesktop}/share/sounds/freedesktop/stereo/audio-volume-change.oga";
 | 
					      "${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