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