nix-home/home/kakoune/kak.nix

116 lines
2.9 KiB
Nix
Raw Normal View History

{ config, pkgs, lib, ... }:
2021-09-29 21:11:33 +00:00
let
kakounePkg =
let
2021-12-27 20:26:42 +00:00
rev = "f68e8313b2282b1a94bd5baee2b87581f31fc5e8";
in
pkgs.kakoune.override {
kakoune = pkgs.kakoune-unwrapped.overrideAttrs (oldAttrs: {
version = "r${builtins.substring 0 6 rev}";
src = pkgs.fetchFromGitHub {
repo = "kakoune";
2021-12-27 20:26:42 +00:00
owner = "mawww";
rev = rev;
2021-12-27 20:26:42 +00:00
sha256 = "sha256-CvOjNB30FlN41JZEVuLQhYLy7D8M2BeQBnQ1S+oel5w=";
2021-12-15 19:43:30 +00:00
# sha256 = lib.fakeSha256;
2021-09-29 21:11:33 +00:00
};
});
};
2021-09-29 21:11:33 +00:00
# record a file in the kakoune folder
kakouneFile = filename: {
name = "kakoune/${filename}";
value = {
source = ./. + "/${filename}";
target = ".config/kak/${filename}";
2021-09-29 21:11:33 +00:00
};
};
2021-09-29 21:11:33 +00:00
kakouneAutoload = { name, src }: {
name = "kakoune/autoload/${name}";
value = {
source = src;
target = ".config/kak/autoload/${name}";
2021-09-29 21:11:33 +00:00
};
};
2021-09-29 21:11:33 +00:00
in
{
imports = [ ./kak-lsp.nix ];
# Enable the kakoune package.
home.packages = [ kakounePkg ];
2021-09-29 21:11:33 +00:00
# Enable kak-lsp
programs.kak-lsp.enable = true;
2021-11-09 20:59:22 +00:00
# Source the kakrc we have here.
home.file = builtins.listToAttrs (map kakouneFile [
"kakrc"
"latex.kak"
"source-pwd"
2021-09-29 21:11:33 +00:00
# autoload files
"autoload/markdown.kak"
] ++ map kakouneAutoload [
# include the original autoload files
{
name = "rc";
src = "${kakounePkg}/share/kak/autoload";
}
# Plugins
{
name = "fzf.kak";
src = pkgs.fetchFromGitHub {
owner = "andreyorst";
repo = "fzf.kak";
rev = "68f21eb78638e5a55027f11aa6cbbaebef90c6fb";
sha256 = "12zfvyxqgy18l96sg2xng20vfm6b9py6bxmx1rbpbpxr8szknyh6";
};
}
{
name = "01-cargo.kak";
src = pkgs.fetchFromGitHub {
owner = "krornus";
repo = "kakoune-cargo";
rev = "784e9d412a1331c6d2f2da61621a694d3e2c4281";
sha256 = "1as0jss2fjvx4cyi3d6b9wqknzcf4p4046i5lf0ds582zsa60nis";
};
}
{
name = "00-kakoune-mouvre"; # needs to load before cargo.kak
src = pkgs.fetchFromGitHub {
owner = "krornus";
repo = "kakoune-mouvre";
rev = "47e6f20027d16806097d0bbee72b54717bcebaca";
sha256 = "14fp3p1d0m98rgdjaaik5g44f0fabr6w39np3cqdaxq1i8skq6xv";
};
}
{
name = "kakoune-inc-dec";
src = pkgs.fetchFromGitLab {
owner = "Screwtapello";
repo = "kakoune-inc-dec";
rev = "7bfe9c51";
sha256 = "0f33wqxqbfygxypf348jf1fiscac161wf2xvnh8zwdd3rq5yybl0";
# leaveDotGit = true;
};
}
{
name = "racket.kak";
src = (builtins.fetchTree {
type = "git";
url = "https://bitbucket.org/KJ_Duncan/kakoune-racket.kak.git";
rev = "e397042009b46916ff089d79166ec0e8ca813a18";
narHash = "sha256-IcxFmvG0jqpMCG/dT9crVRgPgMGKkic6xwrnW5z4+bc=";
}) + "/rc";
}
2021-12-15 19:43:30 +00:00
# {
# name = "kakoune-text-objects";
# sec = (builtins.fetchTree {
# type =
# } );
# }
]);
2021-09-29 21:11:33 +00:00
}