add kakoune module
This commit is contained in:
parent
085772367c
commit
fb7b7381bb
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…
Reference in a new issue