{ config, lib, pkgs, ... }: let inherit (lib.meta) getExe'; inherit (lib.modules) mkIf; cfg = config.modules.system.services.owncloud; in { options.modules.system.services.owncloud.enable = lib.mkEnableOption "owncloud"; config = { systemd.user.services.owncloud = mkIf cfg.enable { description = "Owncloud client service"; # makes the graphical session start this service when it starts wantedBy = ["graphical-session.target"]; # when graphical session restarts or gets stopped, this also gets restarted/stopped. partOf = ["graphical-session.target"]; # gets started only after graphical session after = ["graphical-session.target"]; serviceConfig = { ExecStart = "${getExe' pkgs.owncloud-client "owncloud"}"; Restart = "always"; RestartSec = 30; # User = "cr"; # Group = "cr"; # Keyringmode = "shared"; # DevicePolicy = "closed"; # PrivateDevices = true; # PrivateTmp = true; # ProtectClock = true; # ProtectControlGroups = true; # ProtectControlGroup = true; # ProtectKernelLogs = true; # ProtectKernelModules = true; # ProtectKernelTunables = true; # ProtectSystem = "strict"; # SystemCallFilter = "~@clock @cpu-emulation @debug @obsolete @module @mount @raw-io @reboot @swap @privileged"; }; }; }; }