76 lines
1.5 KiB
Nix
76 lines
1.5 KiB
Nix
{
|
|
inputs,
|
|
lib,
|
|
config,
|
|
options,
|
|
...
|
|
}:
|
|
let
|
|
cfg = config.desktop;
|
|
inherit (lib) mkEnableOption mkIf;
|
|
in
|
|
{
|
|
imports = [
|
|
./audio.nix
|
|
./fonts.nix
|
|
./gpg.nix
|
|
./network.nix
|
|
./security.nix
|
|
./services.nix
|
|
./software
|
|
./window-manager.nix
|
|
inputs.nixos-config-hidden.nixosModules.pc
|
|
inputs.home-manager.nixosModules.home-manager
|
|
{
|
|
home-manager.users."hd" = lib.mkAliasDefinitions options.home;
|
|
# install to /etc/profiles, not ~/.nix-profile
|
|
home-manager.useUserPackages = true;
|
|
# dont use home.nixpkgs
|
|
home-manager.useGlobalPkgs = true;
|
|
}
|
|
|
|
];
|
|
|
|
options = {
|
|
desktop.enable = mkEnableOption "Desktop Configuration";
|
|
home = lib.mkOption {
|
|
type = lib.types.attrsOf lib.types.str;
|
|
default = { };
|
|
description = "home-manager configuration.";
|
|
};
|
|
};
|
|
|
|
config = mkIf cfg.enable {
|
|
desktop = {
|
|
audio.enable = true;
|
|
fonts.enable = true;
|
|
gpg.enable = true;
|
|
network.enable = true;
|
|
security.enable = true;
|
|
services.enable = true;
|
|
software.enable = true;
|
|
wm.enable = true;
|
|
};
|
|
|
|
nixpkgs.config.allowUnfreePredicate =
|
|
pkg:
|
|
builtins.elem (lib.getName pkg) [
|
|
"nvidia-x11"
|
|
"nvidia-settings"
|
|
"vscode"
|
|
"obsidian"
|
|
"steam"
|
|
"steam-unwrapped"
|
|
"gateway" # jetbrains
|
|
"spotify"
|
|
"rust-rover"
|
|
];
|
|
|
|
programs.nix-ld.enable = true;
|
|
|
|
home = {
|
|
home.stateVersion = config.system.stateVersion;
|
|
imports = [ ../../mod-hm ];
|
|
};
|
|
};
|
|
}
|