nixos-conf/modules/roles/personal-machine.nix
2025-07-18 10:46:02 +03:00

47 lines
1.2 KiB
Nix

{
config,
lib,
...
}:
let
cfg = config.custom.roles.personalMachine;
in
{
options.custom.roles.personalMachine.enable =
lib.mkEnableOption "role for personal machines (desktop/laptop)";
config = lib.mkIf cfg.enable (
lib.mkMerge [
{
custom = {
hardware = {
keychron.enable = true;
onlykey.enable = true;
trackball.enable = true;
};
programs = {
bitwarden.enable = true;
communication.enable = true;
firefox.enable = true;
i3.enable = true;
moonlight.enable = true;
redshift.enable = true;
usbAutoMount.enable = true;
};
};
system.autoUpgrade.allowReboot = lib.mkForce false;
}
(lib.mkIf config.custom.platform.impermanence.enable {
# TODO Remove this temporary impermanence setup in favor of a more detailed one
environment.persistence."/persist".directories = [
{
directory = "/home/vili";
user = config.users.users.vili.name;
group = config.users.users.vili.group;
mode = "u=rwx,g=,o=";
}
];
})
]
);
}