mirror of
https://github.com/foo-dogsquared/nixos-config.git
synced 2025-04-24 06:19:11 +00:00
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:
parent
8d31aef54d
commit
e4d1bf6af6
68
flake.nix
68
flake.nix
@ -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; };
|
||||||
|
@ -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;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user