{ config, lib, pkgs, ... }: let loc = config.local; colo = loc.scheme; in { users.users.andrew = { extraGroups = [ "gamemode" ]; }; environment.systemPackages = with pkgs; lib.lists.flatten [ (asNeeded "gamepad-tool" ["gamepad-tool"]) (asNeeded "sdl-jstest" ["sdl-jstest" "sdl2-jstest"]) (asNeeded "parsec-bin" ["parsecd"]) (asNeeded "[lutris umu-launcher]" ["lutris"]) (asNeeded "(retroarch.withCores (cores: with cores; [ mesen bsnes ]))" ["retroarch"]) (asNeeded "dolphin-emu" ["dolphin-emu"]) (asNeeded "cemu" ["cemu"]) (asNeeded "ryujinx" ["ryujinx"]) (asNeeded "pcsx2" ["pcsx2-qt"]) (asNeeded "(ppsspp.override { enableQt = true; })" ["ppsspp"]) (asNeeded "rpcs3" ["rpcs3"]) (asNeeded "prismlauncher" ["prismlauncher"]) (asNeeded "osu-lazer-bin" ["osu!"]) ]; #hardware.xone.enable = true; #hardware.opentabletdriver.enable = true; #services.udev.packages = [ pkgs.dolphinEmu ]; #boot.extraModulePackages = [ # config.boot.kernelPackages.gcadapter-oc-kmod #]; #boot.kernelModules = [ "gcadapter_oc" ]; programs.gamemode = { enable = true; settings = { general.desiredgov = "schedutil"; general.inhibit_screensaver = 0; general.renice = 10; # Can't set GPU parameters from an unprivileged container. #gpu = { # apply_gpu_optimisations = "accept-responsibility"; # gpu_device = 0; # amd_performance_level = "high"; #}; }; }; programs.gamescope = { enable = true; package = pkgs.gamescope; capSysNice = true; }; #services.ananicy = { # enable = true; # #package = pkgs.ananicy-cpp; # settings = { # apply_nice = true; # }; # extraTypes = [ # { type = "realtime"; nice = -20; } # ]; # extraRules = [ # { name = "gamescope"; type = "realtime"; } # ]; #}; #security.wrappers = { # gamescope = { # owner = "root"; # group = "root"; # source = "${pkgs.gamescope}/bin/gamescope"; # capabilities = "cap_sys_nice+eip"; # }; #}; home-manager.users.andrew = let homeDir = "${config.users.users.andrew.home}"; in { programs.mangohud = { enable = true; enableSessionWide = false; package = (pkgs.mangohud.override { nvidiaSupport = false; }); settings = { gamemode = true; cpu_temp = true; cpu_mhz = true; vulkan_driver = true; gpu_name = true; gpu_power = true; gpu_temp = true; gpu_junction_temp = true; gpu_core_clock = true; gpu_voltage = true; vram = true; gpu_mem_temp = true; gpu_mem_clock = true; engine_version = true; wine = true; winesync = true; display_server = true; present_mode = true; table_columns = 4; cellpadding_y = -0.100; font_size = 22; round_corners = true; toggle_preset = ""; toggle_hud_position = ""; toggle_fps_limit = ""; toggle_logging = ""; reload_cfg = ""; upload_log = ""; toggle_hud = "Shift_R+F10"; }; }; }; }