67 lines
2.2 KiB
Nix
67 lines
2.2 KiB
Nix
{ lib, config, pkgs, ... }:
|
|
|
|
with lib;
|
|
|
|
let
|
|
cfg = config.roles.desktop;
|
|
in
|
|
{
|
|
config = mkMerge [
|
|
(mkIf (cfg.enable && cfg.gaming.enable) {
|
|
environment.systemPackages = with pkgs; [
|
|
lutris
|
|
moonlight
|
|
|
|
# Emulators
|
|
dolphin-emu
|
|
|
|
# Re-enabled in 25.11 after binary build was fixed
|
|
dolphin-emu-primehack
|
|
|
|
# Experimenting with just using the steam version + downloading
|
|
# indiviudal cores
|
|
#retroarch-full
|
|
ryubing
|
|
|
|
yarg
|
|
];
|
|
|
|
programs.steam = {
|
|
enable = true;
|
|
remotePlay.openFirewall = true;
|
|
dedicatedServer.openFirewall = true;
|
|
localNetworkGameTransfers.openFirewall = true;
|
|
};
|
|
|
|
# Xbox wireless protocol support (PDP RiffMaster Xbox, Xbox controllers, etc.)
|
|
hardware.xone.enable = true;
|
|
|
|
# Disable USB autosuspend — xone-wired PDP RiffMaster guitars disconnect
|
|
# when the kernel suspends the USB device after 2s of idle, then fail to
|
|
# wake on button press (connect/disconnect loop in dmesg).
|
|
boot.kernelParams = [ "usbcore.autosuspend=-1" ];
|
|
|
|
# YARG (rhythm game) needs udev rules for HID controller access.
|
|
# Without these, instruments (Wii, PS3, etc.) can't be read without
|
|
# sudo, and Steam's input layer must be used as a workaround (which
|
|
# causes connectivity conflicts).
|
|
# Note: Xbox peripherals (PDP RiffMaster Xbox) use xone instead of hidraw.
|
|
services.udev.extraRules = ''
|
|
# Allow user access to hidraw devices (Wii/PS3/PS4 instruments, etc.)
|
|
KERNEL=="hidraw*", TAG+="uaccess"
|
|
|
|
# Xbox 360 Wireless Adapter
|
|
SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="0291", MODE="0666"
|
|
SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="02a9", MODE="0666"
|
|
SUBSYSTEM=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="0719", MODE="0666"
|
|
|
|
# PDP RiffMaster Xbox - named symlinks by serial number
|
|
# Ladybug
|
|
KERNEL=="event*", SUBSYSTEM=="input", ATTRS{serial}=="0000765A5937FF9B", SYMLINK+="input/yarg-ladybug"
|
|
# Fly
|
|
KERNEL=="event*", SUBSYSTEM=="input", ATTRS{serial}=="0000C8733EB92FC5", SYMLINK+="input/yarg-fly"
|
|
'';
|
|
})
|
|
];
|
|
}
|