72 lines
1.7 KiB
Nix
72 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;
|
|
|
|
};
|
|
}
|