nix/lib/modules/gamer.nix
2023-12-03 21:01:39 +00:00

66 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-24.8.6"
];
home-manager.users.${user}.imports = [{
home.packages = with pkgs; [
airshipper
minetest
superTuxKart
xonotic
heroic
BeatSaberModManager
protontricks
protonup-qt
gamemode
(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;
};
}