nix/lib/modules/gamer.nix
2023-12-23 15:43:26 +00:00

78 lines
1.7 KiB
Nix

{user}: {
lib,
pkgs,
config,
...
}:
with lib; {
options.roles.gamer = {
enable = mkEnableOption "gamer packages";
};
config = mkIf config.roles.gamer.enable {
# required for heroic launcher
nixpkgs.config.permittedInsecurePackages = [
"electron-25.9.0"
];
home-manager.users.${user}.imports = [
{
home.packages = with pkgs; [
airshipper
minetest
superTuxKart
xonotic
heroic
BeatSaberModManager
protontricks
protonup-qt
gamemode
gamescope
monado
openxr-loader
opencomposite
(makeDesktopItem {
name = "x11steam";
desktopName = "X11 Steam Wrapper";
exec = "QT_QPA_PLATFORM=xcb SDL_VIDEODRIVER=x11 ${steam}/bin/steam";
})
oversteer
];
}
];
nixpkgs.config.allowUnfreePredicate = pkg:
builtins.elem (lib.getName pkg) [
"steam"
"steam-run"
"steam-original"
"osu-lazer"
];
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
};
hardware.steam-hardware.enable = true;
environment.etc.logitechG920 = {
target = "usb_modeswitch.d/046d:c261";
text = ''
DefaultVendor=046d
DefaultProduct=c261
MessageEndpoint=01
ResponseEndpoint=01
TargetClass=0x03
MessageContent="0f00010142"
'';
};
services.udev.extraRules = ''
ATTR{idVendor}=="046d", ATTR{idProduct}=="c261", RUN+="${pkgs.usb-modeswitch}/bin/usb_modeswitch -c '/etc/usb_modeswitch.d/046d:c261'"
'';
hardware.new-lg4ff.enable = true;
};
}