{
  lib,
  config,
  ...
}: let
  my = {
    name = "marley";
    username = "punkfairie";
    fullName = "Marley Rae";
    email = "marley@punkfairie.net";
  };

  desktopPass = "$y$j9T$ztWf9WeUCENC2T12qS4mi1$51ihV/5cQ8mdJJrNe7MMguk4hPB61S5xHawsfi.1hL3";
  serverPass = "$y$j9T$8hA7OWZsdQMHqYIy8LkYQ1$hFeP2ak3QA4FtoIYIwqPg10//ZOSZrAw1PzJj0PuGSA";
in {
  marleyos.my = {
    inherit (my) name username fullName email;
  };

  users = {
    mutableUsers = false;

    groups = {
      "compat" = {
        gid = 1000;
      };
    };

    users."${my.name}" = {
      isNormalUser = true;
      description = my.fullName;
      extraGroups =
        ["wheel" "compat"]
        ++ (lib.optional config.networking.networkmanager.enable "networkmanager")
        ++ (lib.optional config.virtualisation.docker.enable "docker");
      hashedPassword =
        if config.marleyos.isServer
        then serverPass
        else desktopPass;
    };
  };

  home-manager.backupFileExtension = "bak";
}