-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathflake.nix
83 lines (75 loc) · 1.78 KB
/
flake.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
{
description = "Redyf's Neovim Config";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
utils.url = "github:numtide/flake-utils";
};
outputs =
{
self,
nixpkgs,
utils,
...
}:
utils.lib.eachDefaultSystem (
system:
let
inherit (nixpkgs) lib;
pkgs = nixpkgs.legacyPackages.${system};
runtimeDeps = with pkgs; [
# Tree sitter
gcc
# LSP/Linters
nixd
statix
deadnix
manix
# Telescope
chafa
ffmpegthumbnailer
# Misc
wakatime
];
nvim = pkgs.wrapNeovimUnstable pkgs.neovim-unwrapped (
pkgs.neovimUtils.makeNeovimConfig {
customRC = ''
set runtimepath^=${./.}
source ${./.}/init.lua
'';
}
// {
wrapperArgs = [
"--prefix"
"PATH"
":"
"${lib.makeBinPath runtimeDeps}"
];
}
);
in
{
overlays = {
neovim = _: _prev: {
neovim = nvim;
};
default = self.overlays.neovim;
};
packages = rec {
neovim = nvim;
default = neovim;
};
devShells.default = pkgs.mkShell {
nativeBuildInputs = with pkgs; [
lua # Lua programming language
stylua # Lua formatter
selene # Lua linter written in rust
lua-language-server # Lua LSP
luajitPackages.luarocks-nix # Package manager for Lua on Nix
];
shellHook = ''
echo "Environment is ready" | ${pkgs.lolcat}/bin/lolcat;
'';
};
}
);
}