mirror of
https://codeberg.org/leana8959/.files.git
synced 2025-12-06 14:49:14 +00:00
ref(nix): ✨ mkOptions ✨
This commit is contained in:
parent
d98d30916b
commit
989d025f56
42 changed files with 80 additions and 78 deletions
42
nix/lib.nix
42
nix/lib.nix
|
|
@ -5,13 +5,6 @@
|
|||
flake-utils,
|
||||
...
|
||||
} @ input: let
|
||||
defaultExtraSettings = {
|
||||
extraLanguageServers = false;
|
||||
extraUtils = false;
|
||||
enableCmus = false;
|
||||
universityTools = false;
|
||||
};
|
||||
|
||||
mkArgs = system: rec {
|
||||
pkgs = import nixpkgs {
|
||||
inherit system;
|
||||
|
|
@ -36,15 +29,27 @@
|
|||
audio-lint = input.audio-lint.defaultPackage.${system};
|
||||
};
|
||||
|
||||
mkNixOS = hostname: system: extraSettings: let
|
||||
args =
|
||||
(mkArgs system)
|
||||
// {inherit hostname;}
|
||||
// {settings = defaultExtraSettings // extraSettings;};
|
||||
homeManagerOptions = {lib, ...}: {
|
||||
options = {
|
||||
cmus.enable = lib.mkOption {default = false;};
|
||||
extraUtils.enable = lib.mkOption {default = false;};
|
||||
extraLanguageServers.enable = lib.mkOption {default = false;};
|
||||
universityTools.enable = lib.mkOption {default = false;};
|
||||
};
|
||||
};
|
||||
|
||||
homeManagerModules = hostname: [
|
||||
./home/_
|
||||
./home/${hostname}
|
||||
homeManagerOptions
|
||||
];
|
||||
|
||||
mkNixOS = name: sys: cfgs: let
|
||||
args = (mkArgs sys) // {hostname = name;};
|
||||
in (nixpkgs.lib.nixosSystem {
|
||||
specialArgs = args;
|
||||
modules = [
|
||||
./hosts/${hostname}/default.nix
|
||||
./hosts/${name}/default.nix
|
||||
./layouts
|
||||
input.agenix.nixosModules.default
|
||||
home-manager.nixosModules.home-manager
|
||||
|
|
@ -53,22 +58,19 @@
|
|||
useGlobalPkgs = true;
|
||||
useUserPackages = true;
|
||||
extraSpecialArgs = args;
|
||||
users.leana.imports = [./home/common ./home/${hostname}];
|
||||
users.leana.imports = (homeManagerModules name) ++ [cfgs];
|
||||
};
|
||||
}
|
||||
];
|
||||
});
|
||||
|
||||
mkHomeManager = hostname: system: extraSettings: let
|
||||
args =
|
||||
(mkArgs system)
|
||||
// {inherit hostname;}
|
||||
// {settings = defaultExtraSettings // extraSettings;};
|
||||
mkHomeManager = name: sys: cfgs: let
|
||||
args = mkArgs sys;
|
||||
in
|
||||
home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = args.pkgs;
|
||||
extraSpecialArgs = args;
|
||||
modules = [./home/common ./home/${hostname}];
|
||||
modules = (homeManagerModules name) ++ [cfgs];
|
||||
};
|
||||
in {
|
||||
mkNixOSes = xs:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue