main
1{den, ...}: {
2 den.aspects.desktop.game.includes = [den.aspects.desktop.game.misc];
3 den.aspects.desktop.game.misc = {
4 nixos = {pkgs, ...}: let
5 # Fix DualSense haptics until https://github.com/alsa-project/alsa-ucm-conf/issues/677 been resolved.
6 alsa-ucm-conf-dualsense-haptics = with pkgs;
7 alsa-ucm-conf.overrideAttrs {
8 # https://github.com/alsa-project/alsa-ucm-conf/issues/677#issuecomment-3759801501
9 patches = [
10 ./alsa-ucm-dualsense-haptics.patch
11 ];
12 };
13 in {
14 environment.sessionVariables.ALSA_CONFIG_UCM2 = "${alsa-ucm-conf-dualsense-haptics}/share/alsa/ucm2";
15
16 programs.gamemode.enable = true;
17
18 # load ntsync
19 boot.kernelModules = ["ntsync"];
20 # make ntsync device accessible
21 services.udev.packages = [
22 (pkgs.writeTextFile {
23 name = "ntsync-udev-rules";
24 text = ''KERNEL=="ntsync", MODE="0660", TAG+="uaccess"'';
25 destination = "/etc/udev/rules.d/70-ntsync.rules";
26 })
27 ];
28 };
29
30 provides.to-users = {
31 includes = [
32 {
33 cacheHome = {config, ...}: {
34 directories = [
35 config.xdg.user-dirs.directories.games
36 ];
37 };
38 }
39 ];
40
41 hjem = {config, ...}: {
42 xdg.user-dirs.directories.games = "${config.directory}/Games";
43 };
44 };
45 };
46}