home-manager: use proper submodule type for settings

This commit is contained in:
Ching Pei Yang 2024-12-22 21:50:13 +01:00
parent 3b73bc0e01
commit c7f4dd19ca
No known key found for this signature in database
GPG key ID: B3841364253DC4C8
2 changed files with 14 additions and 10 deletions

View file

@ -31,7 +31,7 @@
}; };
homeManagerModules = { homeManagerModules = {
nvf = import ./flake/modules/home-manager.nix self.packages lib; nvf = import ./flake/modules/home-manager.nix self.packages lib inputs;
default = self.homeManagerModules.nvf; default = self.homeManagerModules.nvf;
neovim-flake = neovim-flake =
lib.warn '' lib.warn ''

View file

@ -1,5 +1,5 @@
# Home Manager module # Home Manager module
packages: lib: { packages: lib: inputs: {
config, config,
pkgs, pkgs,
... ...
@ -8,15 +8,19 @@ packages: lib: {
inherit (lib.modules) mkIf mkAliasOptionModule; inherit (lib.modules) mkIf mkAliasOptionModule;
inherit (lib.lists) optional; inherit (lib.lists) optional;
inherit (lib.options) mkOption mkEnableOption literalExpression; inherit (lib.options) mkOption mkEnableOption literalExpression;
inherit (lib.types) attrsOf anything bool; inherit (lib.types) anything bool submoduleWith;
inherit (lib.nvim) neovimConfiguration;
inherit (lib.nvim.types) anythingConcatLists;
cfg = config.programs.nvf; cfg = config.programs.nvf;
neovimConfigured = neovimConfiguration { nvfModule = submoduleWith {
inherit pkgs; description = "Nvf module";
modules = [cfg.settings]; class = "nvf";
specialArgs = {
inherit pkgs lib inputs;
};
modules = [
{imports = import ../../modules/modules.nix {inherit pkgs lib;};}
];
}; };
in { in {
imports = [ imports = [
@ -55,7 +59,7 @@ in {
}; };
settings = mkOption { settings = mkOption {
type = attrsOf anythingConcatLists; type = nvfModule;
default = {}; default = {};
description = "Attribute set of nvf preferences."; description = "Attribute set of nvf preferences.";
example = literalExpression '' example = literalExpression ''
@ -78,7 +82,7 @@ in {
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
programs.nvf.finalPackage = neovimConfigured.neovim; programs.nvf.finalPackage = config.programs.nvf.settings.vim.build.finalPackage;
home = { home = {
sessionVariables = mkIf cfg.defaultEditor {EDITOR = "nvim";}; sessionVariables = mkIf cfg.defaultEditor {EDITOR = "nvim";};