Anthony Rodriguez
6ab835555c
As my NixOS configuration kept growing, I noticed that I don't need home-manager as much as I did before. A lot of what I need is just a way to map nix attrsets to the program's respective configuration format, which is something that I can now do myself, as my nix knowledge got more extensive. After all of this, I decided to completely get rid of home-manager, and switch to a simpler solution called hjem, which just lets me write files to my home directory that are automatically symlinked using `systemd-tmpfiles`. This allows me to simplify my configuration, remove the separation between NixOS and home-manager modules, and cut my eval times by quite a lot (which allows for faster `nixos-rebuild switch`!).
48 lines
1.2 KiB
Nix
48 lines
1.2 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
options,
|
|
...
|
|
}: let
|
|
inherit (lib) mkIf mkOption;
|
|
inherit (lib.types) str;
|
|
in {
|
|
options.local.homeVars = {
|
|
fullName = mkOption {
|
|
type = str;
|
|
description = "your full name (used for git commits and user description)";
|
|
default = null;
|
|
};
|
|
email = mkOption {
|
|
type = str;
|
|
description = "your email (used for git commits)";
|
|
default = null;
|
|
};
|
|
signingKey = mkOption {
|
|
type = str;
|
|
description = "your ssh public key (used for signing git commits)";
|
|
};
|
|
|
|
userEnvFile = mkOption {
|
|
type = str;
|
|
description = "filename where the user environment variables such as EDITOR will be stored, under `$XDG_CONFIG_HOME/environment.d` (needs to be a file name without extension).";
|
|
default = "99-user-env";
|
|
example = "99-user-env";
|
|
};
|
|
};
|
|
|
|
config.assertions = mkIf (!config.local.profiles.server.enable) [
|
|
{
|
|
assertion = options.local.homeVars.fullName.isDefined;
|
|
}
|
|
{
|
|
assertion = options.local.homeVars.email.isDefined;
|
|
}
|
|
{
|
|
assertion = options.local.homeVars.signingKey.isDefined;
|
|
}
|
|
{
|
|
assertion = options.local.homeVars.userEnvFile.isDefined;
|
|
}
|
|
];
|
|
}
|