hosts: update home-manager default configuration

I forgot I set the home-manager values only to
`homeManagerConfigurations` in the flake output. It should be added to
the hosts configuration with the `home-manager.sharedModules` attribute.
This commit is contained in:
Gabriel Arazas 2022-08-06 13:58:24 +08:00
parent 8d31aef54d
commit e4d1bf6af6
2 changed files with 58 additions and 24 deletions

View File

@ -209,7 +209,8 @@
home-manager.useUserPackages = true; home-manager.useUserPackages = true;
home-manager.useGlobalPkgs = true; home-manager.useGlobalPkgs = true;
home-manager.sharedModules = home-manager.sharedModules =
lib'.modulesToList (lib'.filesToAttr ./modules/home-manager); lib'.modulesToList (lib'.filesToAttr ./modules/home-manager)
++ [ userDefaultConfig ];
home-manager.extraSpecialArgs = { inherit inputs system self; }; home-manager.extraSpecialArgs = { inherit inputs system self; };
# Enabling some things for sops. # Enabling some things for sops.
@ -225,7 +226,7 @@
inputs.home-manager.lib.homeManagerConfiguration { inputs.home-manager.lib.homeManagerConfiguration {
extraSpecialArgs = { inherit system self inputs; }; extraSpecialArgs = { inherit system self inputs; };
lib = lib'; lib = lib';
pkgs = nixpkgs.legacyPackages.${system}; pkgs = nixpkgs.legacyPackages.${builtins.currentSystem};
modules = modules =
# Importing our custom home-manager modules. # Importing our custom home-manager modules.
(lib'.modulesToList (lib'.filesToAttr ./modules/home-manager)) (lib'.modulesToList (lib'.filesToAttr ./modules/home-manager))
@ -234,14 +235,26 @@
++ extraModules; ++ extraModules;
}; };
# The default config for our home-manager configurations. # The default config for our home-manager configurations. This is also to
userDefaultConfig = { pkgs, ... }: { # be used for sharing modules among home-manager users from NixOS
# To be able to use the most of our config as possible, we want both to # configurations with `nixpkgs.useGlobalPkgs` set to `true` so avoid
# use the same overlays. # setting nixpkgs-related options here.
nixpkgs.overlays = overlays; userDefaultConfig = { pkgs, config, ... }: {
# Hardcoding this is not really great especially if you consider using
# Stallman-senpai will be disappointed. :( # other locales but its default values are already hardcoded so what
nixpkgs.config.allowUnfree = true; # the hell. For other users, they would have to do set these manually.
xdg.userDirs = let
appendToHomeDir = path: "${config.home.homeDirectory}/${path}";
in {
desktop = appendToHomeDir "Desktop";
documents = appendToHomeDir "Documents";
download = appendToHomeDir "Downloads";
music = appendToHomeDir "Music";
pictures = appendToHomeDir "Pictures";
publicShare = appendToHomeDir "Public";
templates = appendToHomeDir "Templates";
videos = appendToHomeDir "Videos";
};
manual = { manual = {
html.enable = true; html.enable = true;
@ -272,21 +285,32 @@
# I can now install home-manager users in non-NixOS systems. # I can now install home-manager users in non-NixOS systems.
# NICE! # NICE!
homeManagerConfigurations = lib'.mapAttrs (_: path: homeManagerConfigurations = lib'.mapAttrs
let (_: path:
extraModules = [ let
({ pkgs, config, ... }: { extraModules = [
home.username = builtins.baseNameOf path; ({ pkgs, config, ... }: {
home.homeDirectory = "/home/${config.home.username}"; # To be able to use the most of our config as possible, we want both to
}) # use the same overlays.
userDefaultConfig nixpkgs.overlays = overlays;
path
]; # Stallman-senpai will be disappointed. :(
in mkUser { inherit extraModules; }) nixpkgs.config.allowUnfree = true;
# Setting the homely options.
home.username = builtins.baseNameOf path;
home.homeDirectory = "/home/${config.home.username}";
})
userDefaultConfig
path
];
in
mkUser { inherit extraModules; })
(lib'.filesToAttr ./users/home-manager); (lib'.filesToAttr ./users/home-manager);
# Extending home-manager with my custom modules, if anyone cares. # Extending home-manager with my custom modules, if anyone cares.
homeManagerModules = lib'.importModules (lib'.filesToAttr ./modules/home-manager); homeManagerModules =
lib'.importModules (lib'.filesToAttr ./modules/home-manager);
# In case somebody wants to use my stuff to be included in nixpkgs. # In case somebody wants to use my stuff to be included in nixpkgs.
overlays.default = final: prev: import ./pkgs { pkgs = prev; }; overlays.default = final: prev: import ./pkgs { pkgs = prev; };

View File

@ -5,16 +5,26 @@
rec { rec {
mapHomeManagerUser = user: settings: mapHomeManagerUser = user: settings:
let let
homeDirectory = "/home/${user}";
defaultUserConfig = { defaultUserConfig = {
extraGroups = [ "wheel" ]; extraGroups = [ "wheel" ];
createHome = true; createHome = true;
home = "/home/${user}"; home = homeDirectory;
}; };
# TODO: Effectively override the option. # TODO: Effectively override the option.
# We assume all users set with this module are normal users. # We assume all users set with this module are normal users.
absoluteOverrides = { isNormalUser = true; }; absoluteOverrides = { isNormalUser = true; };
in { in {
home-manager.users."${user}" = import (lib.getUser "home-manager" user); home-manager.users."${user}" = { ... }: {
imports = [
{
home.username = user;
home.homeDirectory = homeDirectory;
}
(lib.getUser "home-manager" user)
];
};
users.users."${user}" = defaultUserConfig // settings // absoluteOverrides; users.users."${user}" = defaultUserConfig // settings // absoluteOverrides;
}; };