anchor.diff:          description = "Allows Octoprint to control Klipper.";
         };
   
  +      user = mkOption {
  +        type = types.nullOr types.str;
  +        default = null;
  +        description = ''
  +          User account under which Klipper runs.
  +
  +          If null is specified (default), a temporary user will be created by systemd.
  +        '';
  +      };
  +
  +      group = mkOption {
  +        type = types.nullOr types.str;
  +        default = null;
  +        description = ''
  +          Group account under which Klipper runs.
  +
  +          If null is specified (default), a temporary user will be created by systemd.
  +        '';
  +      };
  +
         settings = mkOption {
           type = format.type;
           default = { };
  
positive.code: 
    ##### implementation
    config = mkIf cfg.enable {
      assertions = [{
        assertion = cfg.octoprintIntegration -> config.services.octoprint.enable;
        message = "Option klipper.octoprintIntegration requires Octoprint to be enabled on this system. Please enable services.octoprint to use it.";
      }];
  
      environment.etc."klipper.cfg".source = format.generate "klipper.cfg" cfg.settings;
  
      systemd.services.klipper = {
        description = "Klipper 3D Printer Firmware";
  
negative.code:         RuntimeDirectory = "klipper";
          SupplementaryGroups = [ "dialout" ];
          WorkingDirectory = "${package}/lib";
        } // (if cfg.user != null then {
          Group = cfg.group;
          User = cfg.user;
        } else {
          DynamicUser = true;
          User = "klipper";
  