Avoid possible infinite recursion
Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
{
|
||||
user ? throw "user argument is required",
|
||||
username ? throw "username argument is required",
|
||||
}:
|
||||
{
|
||||
config,
|
||||
@@ -8,7 +8,7 @@
|
||||
...
|
||||
}:
|
||||
{
|
||||
home-manager.users.${user.name}.systemd.user.services.mpris-proxy = {
|
||||
home-manager.users.${username}.systemd.user.services.mpris-proxy = {
|
||||
Unit = {
|
||||
Description = "MPRIS proxy";
|
||||
Requires = [ "sound.target" ];
|
||||
|
@@ -1,7 +1,12 @@
|
||||
{
|
||||
user ? throw "user argument is required",
|
||||
username ? throw "username argument is required",
|
||||
}:
|
||||
{ lib, pkgs, ... }:
|
||||
{
|
||||
home-manager.users.${user.name}.home.packages = with pkgs; [ brightnessctl ];
|
||||
users.users.${username}.extraGroups = [
|
||||
"video"
|
||||
"inputs"
|
||||
];
|
||||
|
||||
home-manager.users.${username}.home.packages = with pkgs; [ brightnessctl ];
|
||||
}
|
||||
|
@@ -1,9 +1,9 @@
|
||||
{
|
||||
user ? throw "user argument is required",
|
||||
username ? throw "username argument is required",
|
||||
}:
|
||||
{ ... }:
|
||||
{
|
||||
home-manager.users.${user.name}.programs.btop = {
|
||||
home-manager.users.${username}.programs.btop = {
|
||||
enable = true;
|
||||
settings = {
|
||||
theme_background = false;
|
||||
|
@@ -1,5 +1,5 @@
|
||||
{
|
||||
user ? throw "user argument is required",
|
||||
username ? throw "username argument is required",
|
||||
}:
|
||||
{
|
||||
config,
|
||||
@@ -8,15 +8,16 @@
|
||||
...
|
||||
}:
|
||||
let
|
||||
hmConfig = config.home-manager.users.${user.name};
|
||||
userConfig = config.users.users.${username};
|
||||
hmConfig = config.home-manager.users.${username};
|
||||
in
|
||||
{
|
||||
home-manager.users.${user.name} = {
|
||||
home-manager.users.${username} = {
|
||||
programs.git = {
|
||||
enable = true;
|
||||
lfs.enable = true;
|
||||
userName = user.fullName;
|
||||
userEmail = user.email;
|
||||
userName = userConfig.fullName;
|
||||
userEmail = userConfig.email;
|
||||
|
||||
signing = {
|
||||
signByDefault = true;
|
||||
|
@@ -1,5 +1,5 @@
|
||||
{
|
||||
user ? throw "user argument is required",
|
||||
username ? throw "username argument is required",
|
||||
}:
|
||||
{
|
||||
config,
|
||||
@@ -8,11 +8,12 @@
|
||||
...
|
||||
}:
|
||||
let
|
||||
hmConfig = config.home-manager.users.${user.name};
|
||||
userConfig = config.users.users.${username};
|
||||
hmConfig = config.home-manager.users.${username};
|
||||
gpgPath = "${hmConfig.xdg.dataHome}/gnupg";
|
||||
in
|
||||
{
|
||||
home-manager.users.${user.name} = {
|
||||
home-manager.users.${username} = {
|
||||
programs.gpg = {
|
||||
enable = true;
|
||||
homedir = gpgPath;
|
||||
@@ -37,7 +38,7 @@ in
|
||||
];
|
||||
runtimeEnv = {
|
||||
GNUPGHOME = gpgPath;
|
||||
HOME = user.home;
|
||||
HOME = userConfig.home;
|
||||
};
|
||||
text = builtins.readFile ./import-gpg-keys.sh;
|
||||
}
|
||||
@@ -64,7 +65,7 @@ in
|
||||
Install.WantedBy = [ "default.target" ];
|
||||
};
|
||||
|
||||
tmpfiles.rules = [ "d ${gpgPath} 0700 ${user.name} users -" ];
|
||||
tmpfiles.rules = [ "d ${gpgPath} 0700 ${username} users -" ];
|
||||
};
|
||||
|
||||
sops.secrets = {
|
||||
|
@@ -1,5 +1,5 @@
|
||||
{
|
||||
user ? throw "user argument is required",
|
||||
username ? throw "username argument is required",
|
||||
}:
|
||||
{ config, inputs, ... }:
|
||||
{
|
||||
@@ -14,7 +14,7 @@
|
||||
backupFileExtension = "bak";
|
||||
useGlobalPkgs = true;
|
||||
|
||||
users.${user.name} = {
|
||||
users.${username} = {
|
||||
home.stateVersion = "24.05";
|
||||
systemd.user.startServices = "sd-switch";
|
||||
nix.settings = config.nix.settings;
|
||||
|
@@ -1,9 +1,9 @@
|
||||
{
|
||||
user ? throw "user argument is required",
|
||||
username ? throw "username argument is required",
|
||||
}:
|
||||
{ ... }:
|
||||
{
|
||||
home-manager.users.${user.name} = {
|
||||
home-manager.users.${username} = {
|
||||
programs.neovim = {
|
||||
enable = true;
|
||||
defaultEditor = true;
|
||||
|
@@ -1,5 +1,5 @@
|
||||
{
|
||||
user ? throw "user argument is required",
|
||||
username ? throw "username argument is required",
|
||||
}:
|
||||
{
|
||||
config,
|
||||
@@ -7,22 +7,25 @@
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
let
|
||||
userConfig = config.users.users.${username};
|
||||
in
|
||||
{
|
||||
programs.fuse.userAllowOther = true;
|
||||
|
||||
systemd.tmpfiles.rules = ([
|
||||
"d /persist/home 0755 root root -"
|
||||
"d /cache/home 0755 root root -"
|
||||
"d /persist${user.home} 0700 ${user.name} users -"
|
||||
"d /cache${user.home} 0700 ${user.name} users -"
|
||||
"d /persist${userConfig.home} 0700 ${username} users -"
|
||||
"d /cache${userConfig.home} 0700 ${username} users -"
|
||||
]);
|
||||
|
||||
home-manager.users.${user.name} = {
|
||||
home-manager.users.${username} = {
|
||||
imports = [ inputs.impermanence.nixosModules.home-manager.impermanence ];
|
||||
|
||||
home.persistence = {
|
||||
"/persist${user.home}".allowOther = true;
|
||||
"/cache${user.home}".allowOther = true;
|
||||
"/persist${userConfig.home}".allowOther = true;
|
||||
"/cache${userConfig.home}".allowOther = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@@ -1,9 +1,9 @@
|
||||
{
|
||||
user ? throw "user argument is required",
|
||||
username ? throw "username argument is required",
|
||||
}:
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
home-manager.users.${user.name} = {
|
||||
home-manager.users.${username} = {
|
||||
home.packages = with pkgs; [
|
||||
wireplumber
|
||||
playerctl
|
||||
|
@@ -1,5 +1,5 @@
|
||||
{
|
||||
user ? throw "user argument is required",
|
||||
username ? throw "username argument is required",
|
||||
}:
|
||||
{
|
||||
config,
|
||||
@@ -8,17 +8,18 @@
|
||||
...
|
||||
}:
|
||||
let
|
||||
userConfig = config.users.users.${username};
|
||||
sopsKeyPath = ".config/sops-nix/key.txt";
|
||||
in
|
||||
{
|
||||
home-manager.users.${user.name} = {
|
||||
home-manager.users.${username} = {
|
||||
imports = [ inputs.sops-nix.homeManagerModules.sops ];
|
||||
|
||||
sops.age.keyFile = "/persist${user.home}/${sopsKeyPath}";
|
||||
sops.age.keyFile = "/persist${userConfig.home}/${sopsKeyPath}";
|
||||
|
||||
home = {
|
||||
persistence."/persist${user.home}".files = [ sopsKeyPath ];
|
||||
sessionVariables.SOPS_AGE_KEY_FILE = "${user.home}/${sopsKeyPath}";
|
||||
persistence."/persist${userConfig.home}".files = [ sopsKeyPath ];
|
||||
sessionVariables.SOPS_AGE_KEY_FILE = "${userConfig.home}/${sopsKeyPath}";
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@@ -1,5 +1,5 @@
|
||||
{
|
||||
user ? throw "user argument is required",
|
||||
username ? throw "username argument is required",
|
||||
}:
|
||||
{ config, ... }:
|
||||
{
|
||||
@@ -14,17 +14,17 @@
|
||||
sops.secrets = {
|
||||
# openssl genpkey -algorithm RSA -out key.pem -pkeyopt rsa_keygen_bits:3072
|
||||
"syncthing/key" = {
|
||||
owner = user.name;
|
||||
owner = username;
|
||||
group = "users";
|
||||
};
|
||||
# openssl req -new -x509 -key key.pem -out cert.pem -days 9999 -subj "/CN=syncthing"
|
||||
"syncthing/cert" = {
|
||||
owner = user.name;
|
||||
owner = username;
|
||||
group = "users";
|
||||
};
|
||||
};
|
||||
|
||||
home-manager.users.${user.name}.services.syncthing = {
|
||||
home-manager.users.${username}.services.syncthing = {
|
||||
enable = true;
|
||||
key = config.sops.secrets."syncthing/key".path;
|
||||
cert = config.sops.secrets."syncthing/cert".path;
|
||||
|
@@ -1,5 +1,5 @@
|
||||
{
|
||||
user ? throw "user argument is required",
|
||||
username ? throw "username argument is required",
|
||||
}:
|
||||
{
|
||||
config,
|
||||
@@ -8,10 +8,11 @@
|
||||
...
|
||||
}:
|
||||
let
|
||||
hmConfig = config.home-manager.users.${user.name};
|
||||
userConfig = config.users.users.${username};
|
||||
hmConfig = config.home-manager.users.${username};
|
||||
in
|
||||
{
|
||||
home-manager.users.${user.name} = {
|
||||
home-manager.users.${username} = {
|
||||
imports = [ ./options.nix ];
|
||||
|
||||
xdg = {
|
||||
@@ -22,13 +23,13 @@ in
|
||||
userDirs = {
|
||||
enable = true;
|
||||
extraConfig = {
|
||||
XDG_VM_DIR = "${user.home}/VMs";
|
||||
XDG_GIT_DIR = "${user.home}/git";
|
||||
XDG_VM_DIR = "${userConfig.home}/VMs";
|
||||
XDG_GIT_DIR = "${userConfig.home}/git";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
home.persistence."/persist${user.home}".directories = with hmConfig.xdg.userDirs; [
|
||||
home.persistence."/persist${userConfig.home}".directories = with hmConfig.xdg.userDirs; [
|
||||
relativeDesktop
|
||||
relativeDocuments
|
||||
relativeDownload
|
||||
|
@@ -1,12 +1,13 @@
|
||||
{
|
||||
user ? throw "user argument is required",
|
||||
username ? throw "username argument is required",
|
||||
}:
|
||||
{ config, ... }:
|
||||
let
|
||||
hmConfig = config.home-manager.users.${user.name};
|
||||
userConfig = config.users.users.${username};
|
||||
hmConfig = config.home-manager.users.${username};
|
||||
in
|
||||
{
|
||||
home-manager.users.${user.name} = {
|
||||
home-manager.users.${username} = {
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
dotDir = "${hmConfig.xdg.relativeConfigHome}/zsh";
|
||||
@@ -20,6 +21,8 @@ in
|
||||
syntaxHighlighting.enable = true;
|
||||
};
|
||||
|
||||
home.persistence."/persist${user.home}".directories = [ "${hmConfig.xdg.relativeDataHome}/zsh" ];
|
||||
home.persistence."/persist${userConfig.home}".directories = [
|
||||
"${hmConfig.xdg.relativeDataHome}/zsh"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
Reference in New Issue
Block a user