{ lib, config, pkgs, ... }: with lib; let cfg = config.my.services.synology-drive; in { options.my.services.synology-drive = { enable = mkEnableOption "synology-drive"; package = mkOption { type = types.package; default = pkgs.synology-drive-client; description = "The package to use for synology-drive"; }; }; config = mkIf cfg.enable { systemd.user.services.synology-drive = { after = [ "graphical-session.target" "network.target" ]; partOf = [ "graphical-session.target" ]; wantedBy = [ "graphical-session.target" ]; serviceConfig = { ExitType = "cgroup"; Restart = "always"; RestartSec = "1s"; ExecStartPre = "${pkgs.coreutils}/bin/rm -rf %h/.SynologyDrive/SynologyDrive.app %h/.SynologyDrive/cloud-connect.pid"; ExecStart = "${cfg.package}/bin/synology-drive"; }; }; environment.systemPackages = [ cfg.package ]; }; }