{ 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="; } ]; }) ] ); }