From e2764cb4cbb63343b35ef2f9a1569ac678e7db08 Mon Sep 17 00:00:00 2001 From: ItsDrike Date: Sat, 23 Mar 2024 23:06:58 +0100 Subject: [PATCH] Add blank home-manager config --- home/default.nix | 43 +++++++++++++++++++ home/programs/default.nix | 6 +++ home/programs/graphical/default.nix | 5 +++ home/programs/graphical/wms/default.nix | 5 +++ .../graphical/wms/hyprland/default.nix | 3 ++ home/programs/terminal/default.nix | 3 ++ home/services/default.nix | 3 ++ hosts/default.nix | 7 ++- hosts/vbox_nix/default.nix | 4 ++ options/default.nix | 1 + options/home/default.nix | 18 ++++++++ options/system.nix | 4 +- 12 files changed, 98 insertions(+), 4 deletions(-) create mode 100644 home/default.nix create mode 100644 home/programs/default.nix create mode 100644 home/programs/graphical/default.nix create mode 100644 home/programs/graphical/wms/default.nix create mode 100644 home/programs/graphical/wms/hyprland/default.nix create mode 100644 home/programs/terminal/default.nix create mode 100644 home/services/default.nix create mode 100644 options/home/default.nix diff --git a/home/default.nix b/home/default.nix new file mode 100644 index 0000000..03adfe0 --- /dev/null +++ b/home/default.nix @@ -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..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; + }; + }; + }; +} diff --git a/home/programs/default.nix b/home/programs/default.nix new file mode 100644 index 0000000..d700d58 --- /dev/null +++ b/home/programs/default.nix @@ -0,0 +1,6 @@ +_: { + imports = [ + ./graphical + ./terminal + ]; +} diff --git a/home/programs/graphical/default.nix b/home/programs/graphical/default.nix new file mode 100644 index 0000000..47e6869 --- /dev/null +++ b/home/programs/graphical/default.nix @@ -0,0 +1,5 @@ +_: { + imports = [ + ./wms + ]; +} diff --git a/home/programs/graphical/wms/default.nix b/home/programs/graphical/wms/default.nix new file mode 100644 index 0000000..caf0410 --- /dev/null +++ b/home/programs/graphical/wms/default.nix @@ -0,0 +1,5 @@ +_: { + imports = [ + ./hyprland + ]; +} diff --git a/home/programs/graphical/wms/hyprland/default.nix b/home/programs/graphical/wms/hyprland/default.nix new file mode 100644 index 0000000..63b0638 --- /dev/null +++ b/home/programs/graphical/wms/hyprland/default.nix @@ -0,0 +1,3 @@ +_: { + imports = [ ]; +} diff --git a/home/programs/terminal/default.nix b/home/programs/terminal/default.nix new file mode 100644 index 0000000..63b0638 --- /dev/null +++ b/home/programs/terminal/default.nix @@ -0,0 +1,3 @@ +_: { + imports = [ ]; +} diff --git a/home/services/default.nix b/home/services/default.nix new file mode 100644 index 0000000..63b0638 --- /dev/null +++ b/home/services/default.nix @@ -0,0 +1,3 @@ +_: { + imports = [ ]; +} diff --git a/hosts/default.nix b/hosts/default.nix index ec8de1b..a8930e9 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -1,12 +1,15 @@ -{self, inputs, ...}: let +{ self, inputs, ... }: +let inherit (inputs.nixpkgs) lib; # A list of shared modules that ALL systems need shared = [ ../system + ../home ../options ]; -in { +in +{ vboxnix = lib.nixosSystem { system = "x86_64-linux"; modules = [ diff --git a/hosts/vbox_nix/default.nix b/hosts/vbox_nix/default.nix index 761ab18..aedc8eb 100644 --- a/hosts/vbox_nix/default.nix +++ b/hosts/vbox_nix/default.nix @@ -27,5 +27,9 @@ virtual-machine = true; cpu.type = "amd"; }; + home-manager = { + enabled = true; + stateVersion = "23.11"; + }; }; } diff --git a/options/default.nix b/options/default.nix index f3a5f52..c2697b8 100644 --- a/options/default.nix +++ b/options/default.nix @@ -1,6 +1,7 @@ _: { imports = [ ./device + ./home ./system.nix ]; } diff --git a/options/home/default.nix b/options/home/default.nix new file mode 100644 index 0000000..616182d --- /dev/null +++ b/options/home/default.nix @@ -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"; + }; + }; +} + diff --git a/options/system.nix b/options/system.nix index beab2c8..d97a2b4 100644 --- a/options/system.nix +++ b/options/system.nix @@ -3,13 +3,13 @@ in { options.myOptions.system = { hostname = mkOption { - description = "hostname for this system"; type = types.str; + description = "Hostname for this system"; }; username = mkOption { - description = "username for the primary admin account for this system"; type = types.str; + description = "Username for the primary admin account for this system"; }; }; }