50 lines
1.2 KiB
Nix
50 lines
1.2 KiB
Nix
# flake.nix
|
|
{
|
|
description = "My own Neovim flake";
|
|
inputs = {
|
|
nixpkgs = {
|
|
url = "github:NixOS/nixpkgs";
|
|
};
|
|
neovim = {
|
|
url = "github:nix-community/neovim-nightly-overlay";
|
|
inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
plugin-dracula = {
|
|
url = "github:Mofiqul/dracula.nvim";
|
|
flake = false;
|
|
};
|
|
plugin-gruvbox = {
|
|
url = "github:ellisonleao/gruvbox.nvim";
|
|
flake = false;
|
|
};
|
|
};
|
|
|
|
outputs = { self, nixpkgs, neovim, ... }@inputs: {
|
|
nixosModules.neovim = { config, lib, pkgs,... }:
|
|
let
|
|
theme = "dracula"; # Change ici pour "gruvbox" ou autre
|
|
themePackage = {
|
|
"dracula" = inputs.plugin-dracula;
|
|
"gruvbox" = inputs.plugin-gruvbox;
|
|
"tokyonight" = null; # Pas de flake pour tokyonight
|
|
}.${theme} or null;
|
|
in
|
|
{
|
|
options.neovim.enable = lib.mkEnableOption "Enable Neovim";
|
|
|
|
config = {
|
|
environment.systemPackages = [
|
|
inputs.neovim.packages.${pkgs.system}.neovim
|
|
];
|
|
programs.neovim = {
|
|
enable = true;
|
|
configure.customRC = ''
|
|
set runtimepath+=${themePackage}
|
|
colorscheme ${theme}
|
|
'';
|
|
};
|
|
};
|
|
};
|
|
};
|
|
}
|