Initial commit

This commit is contained in:
Asdam9
2026-04-14 22:48:18 +02:00
parent dea140ace7
commit 827124afdb
35 changed files with 3999 additions and 0 deletions

View File

@@ -0,0 +1,111 @@
{ inputs, self, ... }: {
flake.nixosModules.neovim = { pkgs, ... }: let
selfpkgs = self.packages."${pkgs.stdenv.hostPlatform.system}";
in {
programs.neovim.defaultEditor = true;
environment.systemPackages = [
selfpkgs.neovim
];
};
flake.modules.neovim.main = { config, wlib, lib, pkgs, ... }: {
options = {
dynamicMode = lib.mkOption {
type = lib.types.bool;
default = false;
description = ''
If true, use impure config instead for fast edits
Both versions of the package may be installed simultaneously
'';
};
initLua = lib.mkOption {
type = wlib.types.stringable;
default = ./.;
};
dynamicInitLua = lib.mkOption {
type = lib.types.either wlib.types.stringable lib.types.luaInline;
default = lib.generators.mkLuaInline "vim.uv.os_homedir() .. '/Documents/MyNixOs/modules/features/neovim'";
};
};
config = {
settings.config_directory =
if config.dynamicMode
then config.dynamicInitLua
else config.initLua;
extraPackages = [
pkgs.ffmpeg-full
pkgs.wl-clipboard
];
specs.init = {
data = null;
before = ["MAIN_INIT"];
config = "require('init')";
};
specs.plugins = {
data = [
pkgs.vimPlugins.lz-n
pkgs.vimPlugins.plenary-nvim
pkgs.vimPlugins.nvim-lspconfig
pkgs.vimPlugins.nvim-treesitter.withAllGrammars
pkgs.vimPlugins.nvim-web-devicons
pkgs.vimPlugins.lspkind-nvim
pkgs.vimPlugins.colorful-menu-nvim
pkgs.vimPlugins.blink-cmp
pkgs.vimPlugins.snacks-nvim
pkgs.vimPlugins.oil-nvim
pkgs.vimPlugins.lualine-nvim
pkgs.vimPlugins.luasnip
pkgs.vimPlugins.kanagawa-nvim
#pkgs.vimPlugins.telescope-nvim
#pkgs.vimPlugins.kiwi-nvim
];
};
specs.lazyPlugins = {
lazy = true;
data = [
pkgs.vimPlugins.lazydev-nvim
pkgs.vimPlugins.gitsigns-nvim
pkgs.vimPlugins.nvim-autopairs
pkgs.vimPlugins.fastaction-nvim
pkgs.vimPlugins.mini-files
pkgs.vimPlugins.codecompanion-nvim
pkgs.vimPlugins.harpoon
pkgs.vimPlugins.undotree
pkgs.vimPlugins.vim-fugitive
];
};
};
};
perSystem = {pkgs, self', ... }: {
packages.neovim = inputs.wrapper-modules.wrappers.neovim.wrap {
inherit pkgs;
imports = [
self.modules.neovim.main
#self.modules.neovim.lua
#self.modules.neovim.nix
];
};
packages.neovimFull = inputs.wrapper-modules.wrappers.neovim.wrap {
inherit pkgs;
dynamicMode = true;
imports = [
self.modules.neovim.main
#self.modules.neovim.allServers
];
};
};
}