Add blank home-manager config

This commit is contained in:
ItsDrike 2024-03-23 23:06:58 +01:00
parent da5262c60d
commit e2764cb4cb
Signed by: ItsDrike
GPG key ID: FA2745890B7048C0
12 changed files with 98 additions and 4 deletions

43
home/default.nix Normal file
View file

@ -0,0 +1,43 @@
{ config, lib, inputs, self, ... }:
let
hmConf = config.myOptions.home-manager;
username = config.myOptions.system.username;
in
{
imports = [
./programs
];
home-manager = lib.mkIf hmConf.enabled {
# Use verbose mode for home-manager
verbose = true;
# Should home-manager use the same pkgs as system's pkgs?
# If disabled, home-manager will independently evaluate and use
# its own set of packages. Note that this could increase disk usage
# and it might lead to inconsistencies.
useGlobalPkgs = true;
# Use NixOS user packages (users.users.<name>.packages)
# instead of home-manager's own shell init config files to
# get packages to install
useUserPackages = true;
# Move existing files to .old suffix rather than exiting with error
backupFileExtension = "hm.old";
# These will be passed to all hm modules
extraSpecialArgs = { inherit inputs self; };
users.${username} = {
# Let home-manager manage itself in standalone mode
programs.home-manager.enable = true;
home = {
inherit username;
homeDirectory = "/home/${username}";
stateVersion = hmConf.stateVersion;
};
};
};
}

View file

@ -0,0 +1,6 @@
_: {
imports = [
./graphical
./terminal
];
}

View file

@ -0,0 +1,5 @@
_: {
imports = [
./wms
];
}

View file

@ -0,0 +1,5 @@
_: {
imports = [
./hyprland
];
}

View file

@ -0,0 +1,3 @@
_: {
imports = [ ];
}

View file

@ -0,0 +1,3 @@
_: {
imports = [ ];
}

View file

@ -0,0 +1,3 @@
_: {
imports = [ ];
}

View file

@ -1,12 +1,15 @@
{self, inputs, ...}: let { self, inputs, ... }:
let
inherit (inputs.nixpkgs) lib; inherit (inputs.nixpkgs) lib;
# A list of shared modules that ALL systems need # A list of shared modules that ALL systems need
shared = [ shared = [
../system ../system
../home
../options ../options
]; ];
in { in
{
vboxnix = lib.nixosSystem { vboxnix = lib.nixosSystem {
system = "x86_64-linux"; system = "x86_64-linux";
modules = [ modules = [

View file

@ -27,5 +27,9 @@
virtual-machine = true; virtual-machine = true;
cpu.type = "amd"; cpu.type = "amd";
}; };
home-manager = {
enabled = true;
stateVersion = "23.11";
};
}; };
} }

View file

@ -1,6 +1,7 @@
_: { _: {
imports = [ imports = [
./device ./device
./home
./system.nix ./system.nix
]; ];
} }

18
options/home/default.nix Normal file
View file

@ -0,0 +1,18 @@
{ lib, ... }: with lib; let
in
{
options.myOptions.home-manager = {
enabled = mkOption {
type = types.bool;
default = false;
description = "Should home-manager be enabled for this host?";
};
stateVersion = mkOption {
type = types.str;
default = config.system.nixos;
description = "HomeManager's state version";
};
};
}

View file

@ -3,13 +3,13 @@ in
{ {
options.myOptions.system = { options.myOptions.system = {
hostname = mkOption { hostname = mkOption {
description = "hostname for this system";
type = types.str; type = types.str;
description = "Hostname for this system";
}; };
username = mkOption { username = mkOption {
description = "username for the primary admin account for this system";
type = types.str; type = types.str;
description = "Username for the primary admin account for this system";
}; };
}; };
} }