Rewrite services
This commit is contained in:
parent
bcb41c6df9
commit
ee9b7f4c5e
|
@ -13,11 +13,15 @@ let
|
||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
|
|
||||||
gsr-start-replay = pkgs.writeShellScriptBin "gsr-start-replay" ''
|
gsr-record = pkgs.writeShellScriptBin "gsr-start-recording" ''
|
||||||
|
systemctl --user start gpu-screen-recorder.service
|
||||||
|
'';
|
||||||
|
|
||||||
|
gsr-replay = pkgs.writeShellScriptBin "gsr-start-replay" ''
|
||||||
systemctl --user start gsr-replay.service
|
systemctl --user start gsr-replay.service
|
||||||
'';
|
'';
|
||||||
|
|
||||||
gsr-stop-replay = pkgs.writeShellScriptBin "gsr-stop-replay" ''
|
gsr-stop = pkgs.writeShellScriptBin "gsr-stop-replay" ''
|
||||||
systemctl --user stop gsr-replay.service
|
systemctl --user stop gsr-replay.service
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
@ -26,8 +30,9 @@ in
|
||||||
{
|
{
|
||||||
environment.systemPackages = [
|
environment.systemPackages = [
|
||||||
gsr-save-replay
|
gsr-save-replay
|
||||||
gsr-start-replay
|
gsr-replay
|
||||||
gsr-stop-replay
|
gsr-record
|
||||||
|
gsr-stop
|
||||||
];
|
];
|
||||||
|
|
||||||
security.wrappers."gsr-kms-server" = {
|
security.wrappers."gsr-kms-server" = {
|
||||||
|
@ -53,10 +58,10 @@ in
|
||||||
extraGSettingsOverridePackages = with pkgs; [ gnome.gnome-settings-daemon ];
|
extraGSettingsOverridePackages = with pkgs; [ gnome.gnome-settings-daemon ];
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.user.services."gsr-replay" = {
|
systemd.user.services = rec {
|
||||||
|
"gpu-screen-recorder" = {
|
||||||
after = [ "graphical-session.target" ];
|
after = [ "graphical-session.target" ];
|
||||||
description = "GPU Screen Recorder replay service";
|
description = "GPU Screen Recorder service";
|
||||||
enable = false; # Disabled by default to save resources
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Environment = [
|
Environment = [
|
||||||
"AUDIO_CODEC=opus"
|
"AUDIO_CODEC=opus"
|
||||||
|
@ -65,20 +70,33 @@ in
|
||||||
"FRAMERATE=60"
|
"FRAMERATE=60"
|
||||||
"MAKEFOLDERS=no"
|
"MAKEFOLDERS=no"
|
||||||
"QUALITY=very_high"
|
"QUALITY=very_high"
|
||||||
"REPLAYDURATION=300"
|
|
||||||
"WINDOW=screen"
|
"WINDOW=screen"
|
||||||
];
|
];
|
||||||
ExecStart = pkgs.writeShellScript "start-gpu-screen-recorder-replay" ''
|
ExecStart = pkgs.writeShellScript "start-gpu-screen-recorder-replay" ''
|
||||||
${pkgs.gpu-screen-recorder}/bin/gpu-screen-recorder -a "$(${pkgs.pulseaudio}/bin/pactl get-default-sink).monitor" -a "$(${pkgs.pulseaudio}/bin/pactl get-default-source)" -ac "$AUDIO_CODEC" -c "$CONTAINER" -f "$FRAMERATE" -k "$CODEC" -mf "$MAKEFOLDERS" -o "${outputDir}" -q "$QUALITY" -r "$REPLAYDURATION" -v no -w "$WINDOW" $ADDITIONAL_ARGS
|
#${pkgs.killall}/bin/killall gpu-screen-recorder
|
||||||
|
|
||||||
|
if [ -n "$REPLAYDURATION" ]; then
|
||||||
|
REPLAYARG="-r $REPLAYDURATION"
|
||||||
|
else
|
||||||
|
REPLAYARG=""
|
||||||
|
fi
|
||||||
|
|
||||||
|
${pkgs.gpu-screen-recorder}/bin/gpu-screen-recorder $REPLAYARG -a "$(${pkgs.pulseaudio}/bin/pactl get-default-sink).monitor" -a "$(${pkgs.pulseaudio}/bin/pactl get-default-source)" -ac "$AUDIO_CODEC" -c "$CONTAINER" -f "$FRAMERATE" -k "$CODEC" -mf "$MAKEFOLDERS" -o "${outputDir}" -q "$QUALITY" -v no -w "$WINDOW" $ADDITIONAL_ARGS
|
||||||
'';
|
'';
|
||||||
Restart = "on-failure";
|
Restart = "on-failure";
|
||||||
RestartSec = "5s";
|
RestartSec = "5s";
|
||||||
Type = "simple";
|
Type = "simple";
|
||||||
};
|
};
|
||||||
wantedBy = [ "graphical-session.target" ];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.user.services."gsr-audio-device-changer" = {
|
"gsr-replay" = gpu-screen-recorder // {
|
||||||
|
description = "GPU Screen Recorder replay service";
|
||||||
|
serviceConfig = gpu-screen-recorder.serviceConfig // {
|
||||||
|
Environment = gpu-screen-recorder.serviceConfig.Environment ++ [ "REPLAYDURATION=300" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
"gsr-replay-change-audio" = {
|
||||||
after = [ "gsr-replay.service" ];
|
after = [ "gsr-replay.service" ];
|
||||||
description = "Restart GPU Screen Recorder replay service on audio device change";
|
description = "Restart GPU Screen Recorder replay service on audio device change";
|
||||||
requires = [ "gsr-replay.service" ];
|
requires = [ "gsr-replay.service" ];
|
||||||
|
@ -90,10 +108,11 @@ in
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
'';
|
'';
|
||||||
Restart = "always";
|
Restart = "on-failure";
|
||||||
RestartSec = "5s";
|
RestartSec = "5s";
|
||||||
Type = "simple";
|
Type = "simple";
|
||||||
};
|
};
|
||||||
wantedBy = [ "gsr-replay.service" ];
|
wantedBy = [ "gsr-replay.service" ];
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue