summaryrefslogtreecommitdiff
path: root/flake.nix
diff options
context:
space:
mode:
Diffstat (limited to 'flake.nix')
-rw-r--r--flake.nix111
1 files changed, 111 insertions, 0 deletions
diff --git a/flake.nix b/flake.nix
new file mode 100644
index 0000000..8be4059
--- /dev/null
+++ b/flake.nix
@@ -0,0 +1,111 @@
+{
+ description = "A Lua-natic's neovim flake, with extra cats! nixCats!";
+
+ inputs = {
+ nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
+ nixCats.url = "github:BirdeeHub/nixCats-nvim";
+ plugins-rustaceanvim.url = "github:mrcjkb/rustaceanvim";
+ plugins-opencode-nvim.url = "github:NickvanDyke/opencode.nvim";
+ plugins-opencode-nvim.flake = false;
+ plugins-neogit.url = "github:NeogitOrg/neogit";
+ plugins-neogit.flake = false;
+ neovim-nightly-overlay = {
+ url = "github:nix-community/neovim-nightly-overlay";
+ };
+ plugins-lze = {
+ url = "github:BirdeeHub/lze";
+ flake = false;
+ };
+ plugins-lzextras = {
+ url = "github:BirdeeHub/lzextras";
+ flake = false;
+ };
+ };
+
+ outputs =
+ {
+ self,
+ nixpkgs,
+ nixCats,
+ ...
+ }@inputs:
+ let
+ inherit (nixCats) utils;
+ luaPath = ./.;
+ forEachSystem = utils.eachSystem nixpkgs.lib.platforms.all;
+ extra_pkg_config = {
+ allowUnfree = true;
+ };
+
+ dependencyOverlays = [
+ (utils.standardPluginOverlay inputs)
+ ];
+
+ categoryDefinitions = import ./cats.nix inputs;
+ packageDefinitions = import ./package.nix inputs;
+ defaultPackageName = "beeVim";
+ in
+ forEachSystem (
+ system:
+ let
+ nixCatsBuilder = utils.baseBuilder luaPath {
+ inherit
+ nixpkgs
+ system
+ dependencyOverlays
+ extra_pkg_config
+ ;
+ } categoryDefinitions packageDefinitions;
+ defaultPackage = nixCatsBuilder defaultPackageName;
+ pkgs = import nixpkgs { inherit system; };
+ in
+ {
+ packages = utils.mkAllWithDefault defaultPackage;
+ devShells = {
+ default = pkgs.mkShell {
+ name = defaultPackageName;
+ packages = [ defaultPackage ];
+ inputsFrom = [ ];
+ shellHook = "";
+ };
+ };
+ }
+ )
+ // (
+ let
+ nixosModule = utils.mkNixosModules {
+ moduleNamespace = [ defaultPackageName ];
+ inherit
+ defaultPackageName
+ dependencyOverlays
+ luaPath
+ categoryDefinitions
+ packageDefinitions
+ extra_pkg_config
+ nixpkgs
+ ;
+ };
+ homeModule = utils.mkHomeModules {
+ moduleNamespace = [ defaultPackageName ];
+ inherit
+ defaultPackageName
+ dependencyOverlays
+ luaPath
+ categoryDefinitions
+ packageDefinitions
+ extra_pkg_config
+ nixpkgs
+ ;
+ };
+ in
+ {
+ overlays = utils.makeOverlays luaPath {
+ inherit nixpkgs dependencyOverlays extra_pkg_config;
+ } categoryDefinitions packageDefinitions defaultPackageName;
+ nixosModules.default = nixosModule;
+ homeModules.default = homeModule;
+ inherit utils nixosModule homeModule;
+ inherit (utils) templates;
+ }
+ );
+}