{ lib, pkgs, ... }: let kakrc = pkgs.writeTextFile (rec { name = "kakrc.kak"; destination = "/share/kak/autoload/${name}"; text = '' add-highlighter global/ number-lines -separator ' │ ' -hlcursor set-option global tabstop 4 set global ui_options ncurses_assistant=cat map global normal :buffer-next eval %sh{ kak-lsp --kakoune -s $kak_session } ''; }); theme = let x = (import ./colors.nix)."dark"; in pkgs.writeTextFile (rec { name = "theme.kak"; destination = "/share/kak/autoload/${name}"; text = '' face global LineNumbers rgb:${x.background.slight} face global BufferPadding rgb:${x.background.slight} face global LineNumberCursor rgb:${x.foreground.primary} face global crosshairs_line "default,rgb:${x.background.normal}" face global MenuForeground "default,blue" face global MenuBackground "default,rgb:313131" face global InlayHint rgb:828282 face global comment rgb:${x.background.slight} ''; }); in { environment.systemPackages = with pkgs; [ (pkgs.kakoune.override { plugins = with kakounePlugins; [ # Custom config kakrc theme # Kakoune language server support kak-lsp ]; }) rnix-lsp ]; }