remove sunshine service from gaming module

This commit is contained in:
notgne2 2022-05-15 08:53:58 -07:00
parent 759fb4e721
commit c2f01a8cc7
Signed by: notgne2
GPG Key ID: 5CE0A245A2DAC84A

View File

@ -3,65 +3,6 @@ inputs:
with lib; with lib;
let let
cfg = config.gaming; cfg = config.gaming;
sunshineSrc = pkgs.fetchFromGitHub {
owner = "loki-47-6F-64";
repo = "sunshine";
rev = "e4c9c292e57d39136df2d46d1e9b66eba53f3bd3";
sha256 = "sha256-YrQHHpw7GOcdlnyJI28VShYFrTRq7kpILnkyCYf77NE=";
fetchSubmodules = true;
};
sunshineAssets = pkgs.runCommandNoCC "sunshine-assets" { } ''
cp -r ${sunshineSrc}/assets $out
'';
sunshine = pkgs.stdenv.mkDerivation {
name = "sunshine";
src = sunshineSrc;
cmakeFlags = [ "-DSUNSHINE_ASSETS_DIR=assets" "-DSUNSHINE_DEFAULT_DIR=${sunshineAssets}" ];
postPatch = ''
substituteInPlace CMakeLists.txt \
--replace '/usr/include/libevdev-1.0' '${pkgs.libevdev}/include/libevdev-1.0'
'';
installPhase = ''
mkdir -p $out/bin
cp sunshine $out/bin
mkdir -p $out/etc
cp -r ../assets $out/etc
'';
postFixup = ''
wrapProgram $out/bin/sunshine --prefix LD_LIBRARY_PATH ":" "/run/opengl-driver/lib"
'';
nativeBuildInputs = with pkgs; [ cmake pkgconfig makeWrapper ];
hardeningDisable = [ "format" ];
buildInputs = with pkgs; [
icu
openssl
(boost.override { enableShared = false; enableStatic = true; })
wayland
valgrind
libffi
ffmpeg
libevdev
libcap
libdrm
libpulseaudio
libopus
cudaPackages_11_4.cudatoolkit
xorg.libXrandr
xorg.libXfixes
xorg.libXtst
xorg.libxcb
];
};
in in
{ {
options.gaming = { options.gaming = {
@ -73,11 +14,6 @@ in
description = "If you want to include wine-staging as new-wine"; description = "If you want to include wine-staging as new-wine";
}; };
sunshineService = mkOption {
type = types.bool;
description = "Enable sunshine game streaming service";
};
steamService = mkOption { steamService = mkOption {
type = types.bool; type = types.bool;
description = "Enable running steam as a service"; description = "Enable running steam as a service";
@ -90,8 +26,7 @@ in
}; };
config = mkIf cfg.enable { config = mkIf cfg.enable {
gaming.sunshineService = mkOptionDefault false; gaming.steamService = mkOptionDefault false;
gaming.steamService = mkOptionDefault cfg.sunshineService;
gaming.scService = mkOptionDefault cfg.steamService; gaming.scService = mkOptionDefault cfg.steamService;
home.sessionVariables = { home.sessionVariables = {
@ -143,41 +78,6 @@ in
) )
] ++ lib.optional cfg.steamService (pkgs.writeShellScriptBin "steam" "${pkgs.systemd}/bin/systemctl --user start steam"); ] ++ lib.optional cfg.steamService (pkgs.writeShellScriptBin "steam" "${pkgs.systemd}/bin/systemctl --user start steam");
systemd.user.services.sunshine = mkIf cfg.sunshineService {
Unit = {
Description = "Host for Moonlight Streaming Client";
Requires = [ "dbus.service" ];
After = [ "graphical-session-pre.target" "network.target" ];
PartOf = [ "graphical-session.target" ];
};
Install = {
WantedBy = [ "graphical-session.target" ];
};
Service = {
WorkingDirectory = "${config.xdg.configHome}/sunshine";
Restart = "on-failure";
RestartSec = 3;
ExecStart = "${sunshine}/bin/sunshine";
ExecStartPre =
let
script = pkgs.writeShellScript "sunshine-pre-start" ''
${pkgs.coreutils}/bin/mkdir -p $HOME/.config/sunshine/assets
${pkgs.coreutils}/bin/rm -rf $HOME/.config/sunshine/assets/shaders
${pkgs.coreutils}/bin/rm -rf $HOME/.config/sunshine/assets/web
${pkgs.coreutils}/bin/rm -rf $HOME/.config/sunshine/assets/box.png
${pkgs.coreutils}/bin/cp --no-preserve=all -r ${sunshineAssets}/shaders $HOME/.config/sunshine/assets
${pkgs.coreutils}/bin/cp --no-preserve=all -r ${sunshineAssets}/web $HOME/.config/sunshine/assets
${pkgs.coreutils}/bin/cp --no-preserve=all ${sunshineAssets}/box.png $HOME/.config/sunshine/assets
'';
in
"${script}";
};
};
systemd.user.services.scc = mkIf cfg.scService { systemd.user.services.scc = mkIf cfg.scService {
Unit = { Unit = {
Description = "User-mode driver and GTK3 based GUI for Steam Controller"; Description = "User-mode driver and GTK3 based GUI for Steam Controller";