1# urserver service
2{ config, lib, pkgs, ... }:
3
4let
5 cfg = config.services.urserver;
6in {
7
8 options.services.urserver.enable = lib.mkEnableOption (lib.mdDoc "urserver");
9
10 config = lib.mkIf cfg.enable {
11
12 networking.firewall = {
13 allowedTCPPorts = [ 9510 9512 ];
14 allowedUDPPorts = [ 9511 9512 ];
15 };
16
17 systemd.user.services.urserver = {
18 description = ''
19 Server for Unified Remote: The one-and-only remote for your computer.
20 '';
21 wantedBy = [ "graphical-session.target" ];
22 partOf = [ "graphical-session.target" ];
23 after = [ "network.target" ];
24 serviceConfig = {
25 Type = "forking";
26 ExecStart = ''
27 ${pkgs.urserver}/bin/urserver --daemon
28 '';
29 ExecStop = ''
30 ${pkgs.procps}/bin/pkill urserver
31 '';
32 RestartSec = 3;
33 Restart = "on-failure";
34 };
35 };
36 };
37
38}