blob: a347568e58d3b6dee36f597320439cf9f3bce6a8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
{
config,
lib,
pkgs,
username,
...
}:
let
cfgSunshine = config.os.srv.sunshine;
cfgMoonlight = config.os.srv.moonlight;
in
{
options.os.srv = {
sunshine.enable = lib.mkEnableOption "enables sunshine streaming server";
moonlight.enable = lib.mkEnableOption "enables moonlight streaming client";
};
config = lib.mkMerge [
(lib.mkIf cfgSunshine.enable {
services.sunshine = {
enable = true;
capSysAdmin = true;
openFirewall = true;
autoStart = false;
};
hardware.uinput.enable = true;
users.users.${username}.extraGroups = [
"video"
"input"
"render"
];
})
(lib.mkIf cfgMoonlight.enable {
environment.systemPackages = [
pkgs.moonlight-qt
];
})
];
}
|