Compare commits
2 commits
1de42e1a89
...
b3ebb46101
Author | SHA1 | Date | |
---|---|---|---|
b3ebb46101 | |||
9156c6049c |
7 changed files with 554 additions and 520 deletions
30
flake.lock
generated
30
flake.lock
generated
|
@ -746,11 +746,11 @@
|
||||||
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
"xwayland-satellite-unstable": "xwayland-satellite-unstable"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1742676311,
|
"lastModified": 1743644801,
|
||||||
"narHash": "sha256-EZ+/JXbyE7r/e4tNftecWcWtzjb8YBOGLG75Z+rFgZg=",
|
"narHash": "sha256-z8x/j/RuDBo/5lNt3XYatKRpIMFMHVE2HK7TKVxYn+c=",
|
||||||
"owner": "sodiboo",
|
"owner": "sodiboo",
|
||||||
"repo": "niri-flake",
|
"repo": "niri-flake",
|
||||||
"rev": "d56129adbc7cc099b44eb134d2c25e3e2201ec7f",
|
"rev": "f3fca85fe72c70d58f44f4c6ad2f27a91aa54d0d",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -779,11 +779,11 @@
|
||||||
"niri-unstable": {
|
"niri-unstable": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1742641057,
|
"lastModified": 1743492917,
|
||||||
"narHash": "sha256-+OhtlQPNOKmwK6YtAaXPu42jXe3ufi7hny78N8dqDKA=",
|
"narHash": "sha256-OqLDg0Ody1HX23hgjvjIkfZPNhYKxbkj/ONcDjdD4Ik=",
|
||||||
"owner": "YaLTeR",
|
"owner": "YaLTeR",
|
||||||
"repo": "niri",
|
"repo": "niri",
|
||||||
"rev": "ed20822ce947198e4106698d7afffd0a832a7b3c",
|
"rev": "60034a57efd9c8130b05797b37cbc187a8c13145",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -926,11 +926,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs-stable_3": {
|
"nixpkgs-stable_3": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1742512142,
|
"lastModified": 1743576891,
|
||||||
"narHash": "sha256-8XfURTDxOm6+33swQJu/hx6xw1Tznl8vJJN5HwVqckg=",
|
"narHash": "sha256-vXiKURtntURybE6FMNFAVpRPr8+e8KoLPrYs9TGuAKc=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "7105ae3957700a9646cc4b766f5815b23ed0c682",
|
"rev": "44a69ed688786e98a101f02b712c313f1ade37ab",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -1102,11 +1102,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_8": {
|
"nixpkgs_8": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1742422364,
|
"lastModified": 1743583204,
|
||||||
"narHash": "sha256-mNqIplmEohk5jRkqYqG19GA8MbQ/D4gQSK0Mu4LvfRQ=",
|
"narHash": "sha256-F7n4+KOIfWrwoQjXrL2wD9RhFYLs2/GGe/MQY1sSdlE=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "a84ebe20c6bc2ecbcfb000a50776219f48d134cc",
|
"rev": "2c8d3f48d33929642c1c12cd243df4cc7d2ce434",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -1508,11 +1508,11 @@
|
||||||
"xwayland-satellite-unstable": {
|
"xwayland-satellite-unstable": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1742671548,
|
"lastModified": 1743346993,
|
||||||
"narHash": "sha256-nJK70IyhyOXth5Dcyv7DKtv95TTZkqcAYHVj4Uq2Blw=",
|
"narHash": "sha256-i7rWd/5BcqLgQEtB5L/6gKN5R5GUJcmm34F+iBivH60=",
|
||||||
"owner": "Supreeeme",
|
"owner": "Supreeeme",
|
||||||
"repo": "xwayland-satellite",
|
"repo": "xwayland-satellite",
|
||||||
"rev": "0fa13c6fb43ae26a597103989a42e44a03d2d827",
|
"rev": "45c055696437a08e3989d9b91d9c617b84cc2bc3",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
|
@ -189,7 +189,12 @@
|
||||||
|
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
overlays.default = lib.composeManyExtensions overlays;
|
overlays = {
|
||||||
|
default = lib.composeManyExtensions overlays;
|
||||||
|
kakoune = final: prev: {
|
||||||
|
nki-kakoune = final.callPackage ./packages/common/nki-kakoune { };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
packages.x86_64-linux.deploy-rs = deploy-rs.packages.x86_64-linux.default;
|
packages.x86_64-linux.deploy-rs = deploy-rs.packages.x86_64-linux.default;
|
||||||
apps.x86_64-linux.deploy-rs = deploy-rs.apps.x86_64-linux.default;
|
apps.x86_64-linux.deploy-rs = deploy-rs.apps.x86_64-linux.default;
|
||||||
|
|
|
@ -2,21 +2,24 @@
|
||||||
callPackage,
|
callPackage,
|
||||||
kakoune,
|
kakoune,
|
||||||
kakoune-unwrapped,
|
kakoune-unwrapped,
|
||||||
|
nki-kak-util ? callPackage ./util.nix { },
|
||||||
|
nki-kak-lsp ? callPackage ./lsp.nix { },
|
||||||
|
nki-kak-rc ? callPackage ./rc.nix { },
|
||||||
|
nki-kak-plugins ? callPackage ./plugins.nix { util = nki-kak-util; },
|
||||||
|
nki-kak-kaktex ? callPackage ./kaktex { },
|
||||||
|
nki-kak-themes ? callPackage ./themes.nix { },
|
||||||
|
nki-kak-faces ? callPackage ./faces.nix { util = nki-kak-util; },
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
|
||||||
lsp = callPackage ./lsp.nix { };
|
|
||||||
rc = (callPackage ./rc.nix { });
|
|
||||||
in
|
|
||||||
(kakoune.override {
|
(kakoune.override {
|
||||||
plugins =
|
plugins =
|
||||||
callPackage ./plugins.nix { }
|
nki-kak-plugins
|
||||||
++ callPackage ./themes.nix { }
|
++ nki-kak-themes
|
||||||
++ [
|
++ [
|
||||||
(callPackage ./kaktex { })
|
nki-kak-kaktex
|
||||||
(callPackage ./faces.nix { })
|
nki-kak-faces
|
||||||
rc
|
nki-kak-rc
|
||||||
lsp.plugin
|
nki-kak-lsp.plugin
|
||||||
];
|
];
|
||||||
}).overrideAttrs
|
}).overrideAttrs
|
||||||
(attrs: {
|
(attrs: {
|
||||||
|
@ -27,6 +30,15 @@ in
|
||||||
rm "$out/bin/kak"
|
rm "$out/bin/kak"
|
||||||
makeWrapper "${kakoune-unwrapped}/bin/kak" "$out/bin/kak" \
|
makeWrapper "${kakoune-unwrapped}/bin/kak" "$out/bin/kak" \
|
||||||
--set KAKOUNE_RUNTIME "$out/share/kak" \
|
--set KAKOUNE_RUNTIME "$out/share/kak" \
|
||||||
--suffix PATH ":" "${lsp.extraPaths}"
|
--suffix PATH ":" "${nki-kak-lsp.extraPaths}"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
passthru = {
|
||||||
|
lsp = nki-kak-lsp;
|
||||||
|
rc = nki-kak-rc;
|
||||||
|
plugins = nki-kak-plugins;
|
||||||
|
kaktex = nki-kak-kaktex;
|
||||||
|
themes = nki-kak-themes;
|
||||||
|
faces = nki-kak-faces;
|
||||||
|
};
|
||||||
})
|
})
|
||||||
|
|
|
@ -1,6 +1,9 @@
|
||||||
{ callPackage, ... }:
|
{
|
||||||
|
callPackage,
|
||||||
|
utils ? callPackage ./utils.nix { },
|
||||||
|
...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
utils = callPackage ./utils.nix { };
|
|
||||||
faces = {
|
faces = {
|
||||||
Default = "%opt{text},%opt{base}";
|
Default = "%opt{text},%opt{base}";
|
||||||
BufferPadding = "%opt{base},%opt{base}";
|
BufferPadding = "%opt{base},%opt{base}";
|
||||||
|
|
|
@ -19,11 +19,15 @@
|
||||||
marksman,
|
marksman,
|
||||||
templ,
|
templ,
|
||||||
rust-analyzer,
|
rust-analyzer,
|
||||||
|
overrideConfig ? (baseConfig: baseConfig),
|
||||||
|
extraSetup ? "",
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
# Configuration for kak-lsp
|
# Configuration for kak-lsp
|
||||||
config = {
|
config =
|
||||||
|
let
|
||||||
|
baseConfig = {
|
||||||
languageIDs = {
|
languageIDs = {
|
||||||
c = "c_cpp";
|
c = "c_cpp";
|
||||||
cpp = "c_cpp";
|
cpp = "c_cpp";
|
||||||
|
@ -462,6 +466,8 @@ let
|
||||||
verbosity = 255;
|
verbosity = 255;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
in
|
||||||
|
overrideConfig baseConfig;
|
||||||
|
|
||||||
per-lang-config =
|
per-lang-config =
|
||||||
lang:
|
lang:
|
||||||
|
@ -602,6 +608,9 @@ in
|
||||||
|
|
||||||
## Faces
|
## Faces
|
||||||
${faces-config}
|
${faces-config}
|
||||||
|
|
||||||
|
## Extra setup
|
||||||
|
${extraSetup}
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,59 +1,14 @@
|
||||||
{
|
{
|
||||||
pkgs,
|
callPackage,
|
||||||
symlinkJoin,
|
utils ? callPackage ./utils.nix { },
|
||||||
writeTextDir,
|
fetchFromGitHub,
|
||||||
kakouneUtils,
|
fetchFromGitLab,
|
||||||
|
luajit,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
with {
|
with {
|
||||||
inherit (kakouneUtils) buildKakounePluginFrom2Nix;
|
inherit (utils) toDir writeModuleWrapper kakounePlugin;
|
||||||
};
|
};
|
||||||
let
|
|
||||||
toDir = name: file: writeTextDir name (builtins.readFile file);
|
|
||||||
|
|
||||||
writeActivationScript =
|
|
||||||
script:
|
|
||||||
writeTextDir "on-load.kak" ''
|
|
||||||
hook global KakBegin .* %{
|
|
||||||
${script}
|
|
||||||
}
|
|
||||||
'';
|
|
||||||
|
|
||||||
writeModuleWrapper =
|
|
||||||
name: script:
|
|
||||||
writeTextDir "module.kak" ''
|
|
||||||
provide-module ${name} %◍
|
|
||||||
${script}
|
|
||||||
◍
|
|
||||||
'';
|
|
||||||
|
|
||||||
kakounePlugin =
|
|
||||||
{
|
|
||||||
name,
|
|
||||||
src,
|
|
||||||
wrapAsModule ? false,
|
|
||||||
activationScript ? null,
|
|
||||||
...
|
|
||||||
}@attrs:
|
|
||||||
let
|
|
||||||
module = if wrapAsModule then writeModuleWrapper name (builtins.readFile src) else src;
|
|
||||||
in
|
|
||||||
buildKakounePluginFrom2Nix {
|
|
||||||
pname = name;
|
|
||||||
version = attrs.version or "latest";
|
|
||||||
src =
|
|
||||||
if activationScript == null then
|
|
||||||
module
|
|
||||||
else
|
|
||||||
symlinkJoin {
|
|
||||||
name = "${name}-src";
|
|
||||||
paths = [
|
|
||||||
module
|
|
||||||
(writeActivationScript activationScript)
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in
|
|
||||||
builtins.map kakounePlugin [
|
builtins.map kakounePlugin [
|
||||||
# My own scripts
|
# My own scripts
|
||||||
{
|
{
|
||||||
|
@ -68,7 +23,7 @@ builtins.map kakounePlugin [
|
||||||
# Plugins
|
# Plugins
|
||||||
{
|
{
|
||||||
name = "luar";
|
name = "luar";
|
||||||
src = pkgs.fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "gustavo-hms";
|
owner = "gustavo-hms";
|
||||||
repo = "luar";
|
repo = "luar";
|
||||||
rev = "2f430316f8fc4d35db6c93165e2e77dc9f3d0450";
|
rev = "2f430316f8fc4d35db6c93165e2e77dc9f3d0450";
|
||||||
|
@ -78,12 +33,12 @@ builtins.map kakounePlugin [
|
||||||
# Enable luar
|
# Enable luar
|
||||||
require-module luar
|
require-module luar
|
||||||
# Use luajit
|
# Use luajit
|
||||||
set-option global luar_interpreter ${pkgs.luajit}/bin/luajit
|
set-option global luar_interpreter ${luajit}/bin/luajit
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "peneira";
|
name = "peneira";
|
||||||
src = pkgs.fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "gustavo-hms";
|
owner = "gustavo-hms";
|
||||||
repo = "peneira";
|
repo = "peneira";
|
||||||
rev = "b56dd10bb4771da327b05a9071b3ee9a092f9788";
|
rev = "b56dd10bb4771da327b05a9071b3ee9a092f9788";
|
||||||
|
@ -128,7 +83,7 @@ builtins.map kakounePlugin [
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "kakoune-focus";
|
name = "kakoune-focus";
|
||||||
src = pkgs.fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "caksoylar";
|
owner = "caksoylar";
|
||||||
repo = "kakoune-focus";
|
repo = "kakoune-focus";
|
||||||
rev = "949c0557cd4c476822acfa026ca3c50f3d38a3c0";
|
rev = "949c0557cd4c476822acfa026ca3c50f3d38a3c0";
|
||||||
|
@ -140,7 +95,7 @@ builtins.map kakounePlugin [
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "kakoune-inc-dec";
|
name = "kakoune-inc-dec";
|
||||||
src = pkgs.fetchFromGitLab {
|
src = fetchFromGitLab {
|
||||||
owner = "Screwtapello";
|
owner = "Screwtapello";
|
||||||
repo = "kakoune-inc-dec";
|
repo = "kakoune-inc-dec";
|
||||||
rev = "7bfe9c51";
|
rev = "7bfe9c51";
|
||||||
|
@ -158,14 +113,10 @@ builtins.map kakounePlugin [
|
||||||
})
|
})
|
||||||
+ "/rc";
|
+ "/rc";
|
||||||
}
|
}
|
||||||
# {
|
|
||||||
# name = "kakoune-discord";
|
|
||||||
# src = (builtins.getFlake "github:natsukagami/kakoune-discord/03f95e40d6efd8fd3de7bca31653d43de2dcfc5f").packages.${pkgs.system}.kakoune-discord-rc + "/rc";
|
|
||||||
# }
|
|
||||||
rec {
|
rec {
|
||||||
name = "kakoune-mirror";
|
name = "kakoune-mirror";
|
||||||
src =
|
src =
|
||||||
pkgs.fetchFromGitHub {
|
fetchFromGitHub {
|
||||||
owner = "Delapouite";
|
owner = "Delapouite";
|
||||||
repo = "kakoune-mirror";
|
repo = "kakoune-mirror";
|
||||||
rev = "5710635f440bcca914d55ff2ec1bfcba9efe0f15";
|
rev = "5710635f440bcca914d55ff2ec1bfcba9efe0f15";
|
||||||
|
@ -182,7 +133,7 @@ builtins.map kakounePlugin [
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "unicode-math";
|
name = "unicode-math";
|
||||||
src = pkgs.fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "natsukagami";
|
owner = "natsukagami";
|
||||||
repo = "kakoune-unicode-math";
|
repo = "kakoune-unicode-math";
|
||||||
rev = "08dff25da2b86ee0b0777091992bc7fb28c3cb1d";
|
rev = "08dff25da2b86ee0b0777091992bc7fb28c3cb1d";
|
||||||
|
@ -199,7 +150,7 @@ builtins.map kakounePlugin [
|
||||||
}
|
}
|
||||||
{
|
{
|
||||||
name = "kakoune-buffers";
|
name = "kakoune-buffers";
|
||||||
src = pkgs.fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "Delapouite";
|
owner = "Delapouite";
|
||||||
repo = "kakoune-buffers";
|
repo = "kakoune-buffers";
|
||||||
rev = "6b2081f5b7d58c72de319a5cba7bf628b6802881";
|
rev = "6b2081f5b7d58c72de319a5cba7bf628b6802881";
|
||||||
|
|
|
@ -1,5 +1,14 @@
|
||||||
{ lib, writeTextDir, ... }:
|
|
||||||
{
|
{
|
||||||
|
lib,
|
||||||
|
writeTextDir,
|
||||||
|
kakouneUtils,
|
||||||
|
symlinkJoin,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with {
|
||||||
|
inherit (kakouneUtils) buildKakounePluginFrom2Nix;
|
||||||
|
};
|
||||||
|
rec {
|
||||||
mkFacesScript =
|
mkFacesScript =
|
||||||
name: faces:
|
name: faces:
|
||||||
writeTextDir "share/kak/autoload/${name}/faces.kak" ''
|
writeTextDir "share/kak/autoload/${name}/faces.kak" ''
|
||||||
|
@ -9,4 +18,49 @@
|
||||||
)}
|
)}
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
toDir = name: file: writeTextDir name (builtins.readFile file);
|
||||||
|
|
||||||
|
writeActivationScript =
|
||||||
|
script:
|
||||||
|
writeTextDir "on-load.kak" ''
|
||||||
|
hook global KakBegin .* %{
|
||||||
|
${script}
|
||||||
|
}
|
||||||
|
'';
|
||||||
|
|
||||||
|
writeModuleWrapper =
|
||||||
|
name: script:
|
||||||
|
writeTextDir "module.kak" ''
|
||||||
|
provide-module ${name} %◍
|
||||||
|
${script}
|
||||||
|
◍
|
||||||
|
'';
|
||||||
|
|
||||||
|
kakounePlugin =
|
||||||
|
{
|
||||||
|
name,
|
||||||
|
src,
|
||||||
|
wrapAsModule ? false,
|
||||||
|
activationScript ? null,
|
||||||
|
...
|
||||||
|
}@attrs:
|
||||||
|
let
|
||||||
|
module = if wrapAsModule then writeModuleWrapper name (builtins.readFile src) else src;
|
||||||
|
in
|
||||||
|
buildKakounePluginFrom2Nix {
|
||||||
|
pname = name;
|
||||||
|
version = attrs.version or "latest";
|
||||||
|
src =
|
||||||
|
if activationScript == null then
|
||||||
|
module
|
||||||
|
else
|
||||||
|
symlinkJoin {
|
||||||
|
name = "${name}-src";
|
||||||
|
paths = [
|
||||||
|
module
|
||||||
|
(writeActivationScript activationScript)
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue