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