73 lines
2.1 KiB
Nix
73 lines
2.1 KiB
Nix
{ home-manager, ... }:
|
|
{
|
|
universal.modules = [
|
|
home-manager.nixosModules.home-manager
|
|
(
|
|
{ config, pkgs, ... }:
|
|
{
|
|
users.users.emv = {
|
|
isNormalUser = true;
|
|
description = "emv";
|
|
# shell = pkgs.zsh; # this is scuffed as hell, please, for the love of fuck, make a zsh.mod.nix file sometime
|
|
# ignoreShellProgramCheck = true;
|
|
extraGroups = [ "wheel" ];
|
|
};
|
|
home-manager = {
|
|
backupFileExtension = "bak";
|
|
useGlobalPkgs = true;
|
|
useUserPackages = true;
|
|
users.emv = {
|
|
home.username = "emv";
|
|
home.homeDirectory = "/home/emv";
|
|
|
|
home.stateVersion = "24.05";
|
|
imports = config._module.args.home_modules;
|
|
};
|
|
};
|
|
}
|
|
)
|
|
];
|
|
personal.home_modules = [
|
|
(
|
|
{
|
|
lib,
|
|
config,
|
|
...
|
|
}:
|
|
{
|
|
options.systemd-fuckery = {
|
|
auto-restart = lib.mkOption {
|
|
type = lib.types.listOf lib.types.str;
|
|
default = [ ];
|
|
};
|
|
};
|
|
|
|
config = {
|
|
home.activation.restartSystemdFuckery =
|
|
let
|
|
ensureRuntimeDir = "XDG_RUNTIME_DIR=\${XDG_RUNTIME_DIR:-/run/user/$(id -u)}";
|
|
|
|
systemctl = "env ${ensureRuntimeDir} ${config.systemd.user.systemctlPath}";
|
|
|
|
each = f: builtins.concatStringsSep "\n" (map f config.systemd-fuckery.auto-restart);
|
|
in
|
|
lib.mkIf (config.systemd-fuckery.auto-restart != [ ]) (
|
|
lib.hm.dag.entryAfter [ "reloadSystemd" ] ''
|
|
systemdStatus=$(${systemctl} --user is-system-running 2>&1 || true)
|
|
|
|
if [[ $systemdStatus == 'running' || $systemdStatus == 'degraded' ]]; then
|
|
${
|
|
each (unit: ''
|
|
run ${systemctl} --user try-restart ${unit}.service
|
|
'')
|
|
}
|
|
else
|
|
echo "User systemd daemon not running. Skipping reload."
|
|
fi
|
|
''
|
|
);
|
|
};
|
|
}
|
|
)
|
|
];
|
|
}
|