aboutsummaryrefslogtreecommitdiff
path: root/modules/kakoune
diff options
context:
space:
mode:
Diffstat (limited to 'modules/kakoune')
-rw-r--r--modules/kakoune/default.nix25
-rw-r--r--modules/kakoune/kak-tree-sitter.nix19
2 files changed, 44 insertions, 0 deletions
diff --git a/modules/kakoune/default.nix b/modules/kakoune/default.nix
new file mode 100644
index 0000000..bacab15
--- /dev/null
+++ b/modules/kakoune/default.nix
@@ -0,0 +1,25 @@
+{ pkgs, lib, ... }:
+with pkgs;
+let
+ kak-tree-sitter-unstable = import ./kak-tree-sitter.nix { inherit pkgs lib; };
+ kak-tmux = pkgs.writeShellScriptBin "kak-tmux" ''
+ if [ -t 0 ] && [ -z "$TMUX" ]; then
+ exec </dev/tty; exec <&1; ${tmux}/bin/tmux new "${kakoune}/bin/kak$(printf ' %q' "$@")"
+ else
+ exec "${kakoune}/bin/kak" "$@"
+ fi
+ '';
+in {
+ environment.systemPackages = [
+ kakoune
+ kakoune-lsp
+ kakoune-cr
+ kak-tree-sitter-unstable
+ kak-tmux
+
+ ripgrep
+ tmux
+ gitu
+ moreutils
+ ];
+}
diff --git a/modules/kakoune/kak-tree-sitter.nix b/modules/kakoune/kak-tree-sitter.nix
new file mode 100644
index 0000000..8860d64
--- /dev/null
+++ b/modules/kakoune/kak-tree-sitter.nix
@@ -0,0 +1,19 @@
+{ lib, pkgs }:
+with pkgs;
+rustPlatform.buildRustPackage rec {
+ pname = "kak-tree-sitter";
+ version = "3.0.0-local";
+
+ src = fetchFromSourcehut {
+ owner = "~hadronized";
+ repo = "kak-tree-sitter";
+ rev = "cdcfb42da9affd9dd0db9e8df1173731c61e3d9f"; # 27 Oct 2025
+ hash = "sha256-Q8R++fEJMZFftiI9zGjwF7X8mek2oc40Yl9WMUtQWEA=";
+ };
+
+ cargoHash = "sha256-lZNM5HqICP6JfaMiBjACcUNRTTTIRhq2ou8cOLU0yOU=";
+
+ meta = {
+ mainProgram = "kak-tree-sitter";
+ };
+}