add gamer environment, fix sunshine

This commit is contained in:
notgne2 2021-10-24 17:35:08 -07:00
parent ea38b66b82
commit 81b226d1b3
No known key found for this signature in database
GPG Key ID: BB661E172B42A7F8
6 changed files with 77 additions and 27 deletions

View File

@ -39,7 +39,7 @@
flake = false; flake = false;
}; };
sunshine = { sunshine = {
url = "git+ssh://git@github.com/loki-47-6F-64/sunshine.git"; url = "git+ssh://git@github.com/loki-47-6F-64/sunshine.git?submodules=true";
flake = false; flake = false;
}; };
}; };
@ -60,6 +60,7 @@
colors = import ./home-manager/modules/colors.nix inputs; colors = import ./home-manager/modules/colors.nix inputs;
fonts = import ./home-manager/modules/fonts.nix; fonts = import ./home-manager/modules/fonts.nix;
gaming = import ./home-manager/modules/gaming.nix inputs; gaming = import ./home-manager/modules/gaming.nix inputs;
gamerenv = import ./home-manager/modules/gamerenv.nix;
all = import ./home-manager/modules/default.nix inputs; all = import ./home-manager/modules/default.nix inputs;
}; };

View File

@ -9,6 +9,7 @@ inputs:
(import ./ezpcusr.nix inputs) (import ./ezpcusr.nix inputs)
(import ./colors.nix inputs) (import ./colors.nix inputs)
(import ./gaming.nix inputs) (import ./gaming.nix inputs)
./gamerenv.nix
./fonts.nix ./fonts.nix
]; ];
} }

View File

@ -208,7 +208,7 @@ in
''; '';
config = { config = {
terminal = lib.mkDefault "kitty"; terminal = lib.mkDefault "${pkgs.kitty}/bin/kitty";
modifier = lib.mkDefault "Mod4"; modifier = lib.mkDefault "Mod4";
@ -691,7 +691,7 @@ in
programs.rofi = { programs.rofi = {
enable = lib.mkDefault true; enable = lib.mkDefault true;
terminal = lib.mkDefault "kitty"; terminal = lib.mkDefault "${pkgs.kitty}/bin/kitty";
}; };
}; };
} }

View File

@ -0,0 +1,43 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.gamerenv;
in
{
options.gamerenv = {
enable = mkEnableOption "Enable gaming environment stuff";
};
config = mkIf cfg.enable {
programs.rofi = {
enable = lib.mkDefault true;
terminal = lib.mkDefault "${pkgs.kitty}/bin/kitty";
};
programs.kitty.enable = lib.mkDefault true;
programs.chromium.enable = lib.mkDefault true;
fonts.enable = lib.mkDefault true;
colors = {
enable = lib.mkDefault true;
};
xsession.enable = true;
xsession.windowManager.i3 = {
enable = true;
package = pkgs.i3-gaps;
config = {
modifier = "Mod1";
terminal = "${pkgs.kitty}/bin/kitty";
floating.criteria = [{ class = "[.]*"; }];
defaultWorkspace = "workspace number 1";
keybindings = lib.mkOptionDefault {
"Mod1+F4" = "kill";
"${config.xsession.windowManager.i3.config.modifier}+q" = "kill";
};
};
};
};
}

View File

@ -10,7 +10,14 @@ let
sunshine = pkgs.stdenv.mkDerivation { sunshine = pkgs.stdenv.mkDerivation {
name = "sunshine"; name = "sunshine";
src = inputs.sunshine; # src = inputs.sunshine;
src = pkgs.fetchFromGitHub {
owner = "loki-47-6F-64";
repo = "sunshine";
rev = "e4c9c292e57d39136df2d46d1e9b66eba53f3bd3";
sha256 = "sha256-YrQHHpw7GOcdlnyJI28VShYFrTRq7kpILnkyCYf77NE=";
fetchSubmodules = true;
};
cmakeFlags = [ "-DSUNSHINE_ASSETS_DIR=assets" "-DSUNSHINE_DEFAULT_DIR=${sunshineAssets}" ]; cmakeFlags = [ "-DSUNSHINE_ASSETS_DIR=assets" "-DSUNSHINE_DEFAULT_DIR=${sunshineAssets}" ];
@ -28,22 +35,25 @@ let
''; '';
postFixup = '' postFixup = ''
addOpenGLRunpath $out/bin/sunshine wrapProgram $out/bin/sunshine --prefix LD_LIBRARY_PATH ":" "/run/opengl-driver/lib"
''; '';
nativeBuildInputs = with pkgs; [ cmake pkgconfig addOpenGLRunpath ]; nativeBuildInputs = with pkgs; [ cmake pkgconfig makeWrapper ];
hardeningDisable = [ "format" ]; hardeningDisable = [ "format" ];
buildInputs = with pkgs; [ buildInputs = with pkgs; [
openssl openssl
(boost.override { enableShared = false; enableStatic = true; }) (boost.override { enableShared = false; enableStatic = true; })
ffmpeg-full wayland
valgrind
libffi
ffmpeg
libevdev libevdev
libcap libcap
libdrm libdrm
libpulseaudio libpulseaudio
libopus libopus
cudatoolkit_11 cudatoolkit_11_4
xorg.libXrandr xorg.libXrandr
xorg.libXfixes xorg.libXfixes
xorg.libXtst xorg.libXtst
@ -136,13 +146,6 @@ in
}; };
}; };
programs.rofi = {
enable = lib.mkDefault true;
terminal = lib.mkDefault "${pkgs.kitty}/bin/kitty";
};
programs.kitty.enable = lib.mkDefault true;
systemd.user.services.scc = { systemd.user.services.scc = {
Unit = { Unit = {
Description = "User-mode driver and GTK3 based GUI for Steam Controller"; Description = "User-mode driver and GTK3 based GUI for Steam Controller";
@ -186,13 +189,5 @@ in
Install = { WantedBy = [ "graphical-session.target" ]; }; Install = { WantedBy = [ "graphical-session.target" ]; };
}; };
programs.chromium.enable = lib.mkDefault true;
fonts.enable = lib.mkDefault true;
colors = {
enable = lib.mkDefault true;
};
}; };
} }

View File

@ -92,7 +92,9 @@ in
vaapiIntel vaapiIntel
vaapiVdpau vaapiVdpau
libvdpau-va-gl libvdpau-va-gl
libGL
]; ];
setLdLibraryPath = true;
}; };
# Support for steam hardware # Support for steam hardware
@ -170,11 +172,19 @@ in
} }
]; ];
networking.firewall.allowedTCPPorts = [
# Steam remote play # Steam remote play
networking.firewall.allowedTCPPorts = [ 27036 ]; 27036
# Sunshine/moonlight streaming
47984 47989 48010
];
networking.firewall.allowedUDPPorts = [
# Used for upnp or something? # Used for upnp or something?
networking.firewall.allowedUDPPorts = [ 1900 ]; 1900
# Sunshine/moonlight streaming
47998 47999 48000 48002 48010
];
# Shit breaks without this lol # Shit breaks without this lol
programs.dconf.enable = lib.mkDefault true; programs.dconf.enable = lib.mkDefault true;