From 22e631f6c96de0c0303d495cdc2f8c9163ae24e4 Mon Sep 17 00:00:00 2001 From: Timothy DeHerrera Date: Thu, 26 Dec 2019 00:17:26 -0700 Subject: [PATCH] games: init profile --- hosts/hp500281.nix | 3 ++- profiles/games/default.nix | 21 ++++++++++++++++++ profiles/games/udev.nix | 45 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 profiles/games/default.nix create mode 100644 profiles/games/udev.nix diff --git a/hosts/hp500281.nix b/hosts/hp500281.nix index b9ffa896..6fab0de5 100644 --- a/hosts/hp500281.nix +++ b/hosts/hp500281.nix @@ -4,10 +4,11 @@ let in { imports = [ - ../users/nrd + ../profiles/games ../profiles/misc ../profiles/misc/plex.nix ../profiles/misc/torrent.nix + ../users/nrd ]; boot.initrd.availableKernelModules = [ diff --git a/profiles/games/default.nix b/profiles/games/default.nix new file mode 100644 index 00000000..0d89342d --- /dev/null +++ b/profiles/games/default.nix @@ -0,0 +1,21 @@ +{ pkgs, ... }: +{ + imports = [ ../graphical ./udev.nix ]; + environment.systemPackages = with pkgs; + [ retroarchBare steam steam-run ]; + + # fps games on laptop need this + services.xserver.libinput.disableWhileTyping = false; + + # 32-bit support needed for steam + hardware.opengl.driSupport32Bit = true; + hardware.pulseaudio.support32Bit = true; + + # better for steam proton games + systemd.extraConfig = "DefaultLimitNOFILE=1048576"; + + # improve wine performance + environment.sessionVariables = { + WINEDEBUG = "-all"; + }; +} diff --git a/profiles/games/udev.nix b/profiles/games/udev.nix new file mode 100644 index 00000000..bdaee327 --- /dev/null +++ b/profiles/games/udev.nix @@ -0,0 +1,45 @@ +{ + # correct controller support for steam + services.udev.extraRules = '' + # This rule is needed for basic functionality of the controller in Steam and keyboard/mouse emulation + SUBSYSTEM=="usb", ATTRS{idVendor}=="28de", MODE="0666" + + # This rule is necessary for gamepad emulation + KERNEL=="uinput", MODE="0660", GROUP="input", OPTIONS+="static_node=uinput" + + KERNEL=="js*", MODE="0660", GROUP="input" + + # Valve HID devices over USB hidraw + KERNEL=="hidraw*", ATTRS{idVendor}=="28de", MODE="0666" + + # Valve HID devices over bluetooth hidraw + KERNEL=="hidraw*", KERNELS=="*28DE:*", MODE="0666" + + # DualShock 4 over USB hidraw + KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="05c4", MODE="0666" + + # DualShock 4 wireless adapter over USB hidraw + KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0ba0", MODE="0666" + + # DualShock 4 Slim over USB hidraw + KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="09cc", MODE="0666" + + # DualShock 4 over bluetooth hidraw + KERNEL=="hidraw*", KERNELS=="*054C:05C4*", MODE="0666" + + # DualShock 4 Slim over bluetooth hidraw + KERNEL=="hidraw*", KERNELS=="*054C:09CC*", MODE="0666" + + # DualShock 3 controller, Bluetooth + KERNEL=="hidraw*", KERNELS=="*054C:0268*", MODE="0660", TAG+="uaccess" + + # DualShock 3 controller, USB + KERNEL=="hidraw*", ATTRS{idVendor}=="054c", ATTRS{idProduct}=="0268", MODE="0660", TAG+="uaccess" + + # Nintendo Switch Pro Controller over USB hidraw + KERNEL=="hidraw*", ATTRS{idVendor}=="057e", ATTRS{idProduct}=="2009", MODE="0666" + + # Nintendo Switch Pro Controller over bluetooth hidraw + KERNEL=="hidraw*", KERNELS=="*057E:2009*", MODE="0666" + ''; +}