nixos-config/user/kakoune/default.nix
2023-01-27 10:42:59 -03:00

62 lines
1.5 KiB
Nix

{ config, pkgs, lib, ... }:
let
inherit (pkgs.uservars) key dmenu editor theme accent;
inherit (theme) color;
in
{
config = {
programs.kakoune = {
enable = true;
plugins = with pkgs.kakounePlugins; [
kak-lsp
];
extraConfig =
lib.concatStringsSep "\n"
(map (lib.readFile) ([
./filetypes.kak
./hooks.kak
./indent.kak
./keys.kak
./plug.kak
./lsp.kak
./usermode.kak
./git-mode.kak
] ++ lib.optional (dmenu == "rofi") ./rofi-commands.kak)) + ''
set global scrolloff 10,20
set global autoreload yes
set global startup_info_version 20200901
'' + (import ./colors.nix {
inherit pkgs lib color accent;
});
};
home.file = { ".config/kak-lsp/kak-lsp.toml".source = ./kak-lsp.toml; };
home.packages = with pkgs; [
terminal
ranger
bmenu
kak-lsp
kak-pager
kak-man-pager
aspell
aspellDicts.en
aspellDicts.pt_BR
];
home.activation = {
update_kakoune = lib.hm.dag.entryAfter [ "writeBoundary" ] ''
$DRY_RUN_CMD timeout 5s kak -clear &&
$DRY_RUN_CMD timeout 5s kak -l | xargs -r -n1 timeout 5s kak -e "config-source;quit" -ui dummy -c ||
$DRY_RUN_CMD true
'';
};
home.sessionVariables = lib.mkIf (editor == "kakoune") {
EDITOR = "kak";
# Some plugins(kak_ansi) like to compile stuff
CC = "cc";
};
};
}