nixos/synergy: add encryption support

Make it possible to use the Synergy server with TLS encryption without
resorting to the GUI.

Changed files
+21 -1
nixos
modules
services
+21 -1
nixos/modules/services/misc/synergy.nix
···
type = types.bool;
description = "Whether the Synergy server should be started automatically.";
};
};
};
···
description = "Synergy server";
wantedBy = optional cfgS.autoStart "graphical-session.target";
path = [ pkgs.synergy ];
-
serviceConfig.ExecStart = ''${pkgs.synergy}/bin/synergys -c ${cfgS.configFile} -f ${optionalString (cfgS.address != "") "-a ${cfgS.address}"} ${optionalString (cfgS.screenName != "") "-n ${cfgS.screenName}" }'';
serviceConfig.Restart = "on-failure";
};
})
···
type = types.bool;
description = "Whether the Synergy server should be started automatically.";
};
+
tls = {
+
enable = mkOption {
+
type = types.bool;
+
default = false;
+
description = ''
+
Whether TLS encryption should be used.
+
+
Using this requires a TLS certificate that can be
+
generated by starting the Synergy GUI once and entering
+
a valid product key.
+
'';
+
};
+
+
cert = mkOption {
+
type = types.nullOr types.str;
+
default = null;
+
example = "~/.synergy/SSL/Synergy.pem";
+
description = "The TLS certificate to use for encryption.";
+
};
+
};
};
};
···
description = "Synergy server";
wantedBy = optional cfgS.autoStart "graphical-session.target";
path = [ pkgs.synergy ];
+
serviceConfig.ExecStart = ''${pkgs.synergy}/bin/synergys -c ${cfgS.configFile} -f${optionalString (cfgS.address != "") " -a ${cfgS.address}"}${optionalString (cfgS.screenName != "") " -n ${cfgS.screenName}"}${optionalString cfgS.tls.enable " --enable-crypto"}${optionalString (cfgS.tls.cert != null) (" --tls-cert=${cfgS.tls.cert}")}'';
serviceConfig.Restart = "on-failure";
};
})