From 81b226d1b3d2131f72907bc244507c59a723b8da Mon Sep 17 00:00:00 2001 From: notgne2 Date: Sun, 24 Oct 2021 17:35:08 -0700 Subject: [PATCH] add gamer environment, fix sunshine --- flake.nix | 3 ++- home-manager/modules/default.nix | 1 + home-manager/modules/ezpcusr.nix | 4 +-- home-manager/modules/gamerenv.nix | 43 +++++++++++++++++++++++++++++++ home-manager/modules/gaming.nix | 35 +++++++++++-------------- modules/workstation.nix | 18 ++++++++++--- 6 files changed, 77 insertions(+), 27 deletions(-) create mode 100644 home-manager/modules/gamerenv.nix diff --git a/flake.nix b/flake.nix index 26a30cc..b8cd836 100644 --- a/flake.nix +++ b/flake.nix @@ -39,7 +39,7 @@ flake = false; }; 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; }; }; @@ -60,6 +60,7 @@ colors = import ./home-manager/modules/colors.nix inputs; fonts = import ./home-manager/modules/fonts.nix; gaming = import ./home-manager/modules/gaming.nix inputs; + gamerenv = import ./home-manager/modules/gamerenv.nix; all = import ./home-manager/modules/default.nix inputs; }; diff --git a/home-manager/modules/default.nix b/home-manager/modules/default.nix index 7538f2e..f548670 100644 --- a/home-manager/modules/default.nix +++ b/home-manager/modules/default.nix @@ -9,6 +9,7 @@ inputs: (import ./ezpcusr.nix inputs) (import ./colors.nix inputs) (import ./gaming.nix inputs) + ./gamerenv.nix ./fonts.nix ]; } diff --git a/home-manager/modules/ezpcusr.nix b/home-manager/modules/ezpcusr.nix index 8a0b6ab..a513a35 100644 --- a/home-manager/modules/ezpcusr.nix +++ b/home-manager/modules/ezpcusr.nix @@ -208,7 +208,7 @@ in ''; config = { - terminal = lib.mkDefault "kitty"; + terminal = lib.mkDefault "${pkgs.kitty}/bin/kitty"; modifier = lib.mkDefault "Mod4"; @@ -691,7 +691,7 @@ in programs.rofi = { enable = lib.mkDefault true; - terminal = lib.mkDefault "kitty"; + terminal = lib.mkDefault "${pkgs.kitty}/bin/kitty"; }; }; } diff --git a/home-manager/modules/gamerenv.nix b/home-manager/modules/gamerenv.nix new file mode 100644 index 0000000..6319d74 --- /dev/null +++ b/home-manager/modules/gamerenv.nix @@ -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"; + }; + }; + }; + }; +} diff --git a/home-manager/modules/gaming.nix b/home-manager/modules/gaming.nix index 6f416e4..98941f5 100644 --- a/home-manager/modules/gaming.nix +++ b/home-manager/modules/gaming.nix @@ -10,7 +10,14 @@ let sunshine = pkgs.stdenv.mkDerivation { 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}" ]; @@ -28,22 +35,25 @@ let ''; 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" ]; buildInputs = with pkgs; [ openssl (boost.override { enableShared = false; enableStatic = true; }) - ffmpeg-full + wayland + valgrind + libffi + ffmpeg libevdev libcap libdrm libpulseaudio libopus - cudatoolkit_11 + cudatoolkit_11_4 xorg.libXrandr xorg.libXfixes 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 = { Unit = { Description = "User-mode driver and GTK3 based GUI for Steam Controller"; @@ -186,13 +189,5 @@ in Install = { WantedBy = [ "graphical-session.target" ]; }; }; - - programs.chromium.enable = lib.mkDefault true; - - fonts.enable = lib.mkDefault true; - - colors = { - enable = lib.mkDefault true; - }; }; } diff --git a/modules/workstation.nix b/modules/workstation.nix index 256b764..1afd994 100644 --- a/modules/workstation.nix +++ b/modules/workstation.nix @@ -92,7 +92,9 @@ in vaapiIntel vaapiVdpau libvdpau-va-gl + libGL ]; + setLdLibraryPath = true; }; # Support for steam hardware @@ -170,11 +172,19 @@ in } ]; - # Steam remote play - networking.firewall.allowedTCPPorts = [ 27036 ]; + networking.firewall.allowedTCPPorts = [ + # Steam remote play + 27036 + # Sunshine/moonlight streaming + 47984 47989 48010 + ]; - # Used for upnp or something? - networking.firewall.allowedUDPPorts = [ 1900 ]; + networking.firewall.allowedUDPPorts = [ + # Used for upnp or something? + 1900 + # Sunshine/moonlight streaming + 47998 47999 48000 48002 48010 + ]; # Shit breaks without this lol programs.dconf.enable = lib.mkDefault true;