at 23.05-pre 1.0 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 (lib.mdDoc "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 after = [ "network-online.target" "network.target" "dbus.service" ]; 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 = "${pkgs.teamviewer}/bin/teamviewerd -f"; 42 PIDFile = "/run/teamviewerd.pid"; 43 ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; 44 Restart = "on-abort"; 45 }; 46 }; 47 }; 48 49}