{ config, pkgs, lib, ... }: with lib; { options.components.gui.steam.enable = mkOption { type = lib.types.bool; default = config.components.gui.enable; }; config = mkIf (config.components.gui.steam.enable) { environment.systemPackages = [ (pkgs.writeShellScriptBin "steam" '' /var/run/wrappers/bin/sudo -u steam -i ${pkgs.steam}/bin/steam $@ '') pkgs.xorg.xhost # to use xbox controllers pkgs.xboxdrv ]; users.users.steam = { isNormalUser = false; isSystemUser = true; home = "/home/steam"; createHome = true; extraGroups = [ "audio" "input" "video" "pipewire" ]; group = "steam"; shell = pkgs.bashInteractive; }; users.groups.steam = { }; # for steam # --------- hardware.opengl.driSupport = true; hardware.opengl.driSupport32Bit = true; security.sudo.extraConfig = '' ${config.users.extraUsers.mainUser.name} ALL=(steam) NOPASSWD: ALL ''; }; }