at 24.11-pre 1.1 kB view raw
1{ config, lib, pkgs, ... }: 2 3with lib; 4 5let 6 7 cfg = config.services.teamviewer; 8 9in 10 11{ 12 13 ###### interface 14 15 options = { 16 17 services.teamviewer.enable = mkEnableOption "TeamViewer daemon"; 18 19 }; 20 21 ###### implementation 22 23 config = mkIf (cfg.enable) { 24 25 environment.systemPackages = [ pkgs.teamviewer ]; 26 27 services.dbus.packages = [ pkgs.teamviewer ]; 28 29 systemd.services.teamviewerd = { 30 description = "TeamViewer remote control daemon"; 31 32 wantedBy = [ "multi-user.target" ]; 33 wants = [ "network-online.target" ]; 34 after = [ "network-online.target" "network.target" "dbus.service" ]; 35 requires = [ "dbus.service" ]; 36 preStart = "mkdir -pv /var/lib/teamviewer /var/log/teamviewer"; 37 38 startLimitIntervalSec = 60; 39 startLimitBurst = 10; 40 serviceConfig = { 41 Type = "simple"; 42 ExecStart = "${pkgs.teamviewer}/bin/teamviewerd -f"; 43 PIDFile = "/run/teamviewerd.pid"; 44 ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; 45 Restart = "on-abort"; 46 }; 47 }; 48 }; 49 50}