zeta-00 / config-for-steamtinkerplay

steamtinkerplay
0 stars 0 forks source link

vortex is not opening in steamtinkerplay, nixos related: #1

Open zeta-00 opened 1 year ago

zeta-00 commented 1 year ago

Edit this configuration file to define what should be installed on

your system. Help is available in the configuration.nix(5) man page

and in the NixOS manual (accessible by running ‘nixos-help’).

{ config, pkgs, ... }:

{ imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix ];

Bootloader.

boot.loader.systemd-boot.enable = true;

disallow user-entered kernel params:

boot.loader.systemd-boot.editor = false:

maximum kernel images to store in /boot:

boot.loader.systemd-boot.configurationLimit = 3;

boot.loader.systemd-boot.consoleMode = "auto";

boot.loader.timeout = 10; boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.efiSysMountPoint = "/boot/efi";

Setup keyfile

boot.initrd.secrets = { "/crypto_keyfile.bin" = null; };

Enable swap on luks

boot.initrd.luks.devices."luks-2966b9a7-ce9e-4c9a-ac7b-dd8c9c324359".device = "/dev/disk/by-uuid/2966b9a7-ce9e-4c9a-ac7b-dd8c9c324359"; boot.initrd.luks.devices."luks-2966b9a7-ce9e-4c9a-ac7b-dd8c9c324359".keyFile = "/crypto_keyfile.bin";

/ boot.kernelParams = [ "i915.force_probe=56a0" ]; /

boot.kernelPackages = pkgs.linuxPackages_latest; boot.supportedFilesystems = [ "ntfs" ];

boot.kernel.sysctl = { "vm.max_map_count" = 1048576; };

FIXME: pick Mesa 23 update

hardware.opengl = let overrideVersion = mesa: mesa.overrideAttrs (_: rec { version = "23.0.0"; src = pkgs.fetchurl { url = "https://archive.mesa3d.org/mesa-${version}.tar.xz"; hash = "sha256-AfPP83Y/CeCtq8uAEeSuvGrUj2pN1LrpBP6RhwfSU+Q="; }; }); mesa23 = overrideVersion pkgs.mesa; mesa23_32 = overrideVersion pkgs.pkgsi686Linux.mesa; in { package = mesa23.drivers; package32 = mesa23_32.drivers; };

nix.settings.experimental-features = [ "nix-command" "flakes" ];

networking.hostName = "nixos_office-pc"; # Define your hostname.

networking.wireless.enable = true; # Enables wireless support via wpa_supplicant.

Configure network proxy if necessary

networking.proxy.default = "http://user:password@proxy:port/";

networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";

Enable networking

networking.networkmanager.enable = true;

Set your time zone.

time.timeZone = "America/Denver";

Select internationalisation properties.

i18n.defaultLocale = "en_US.UTF-8";

i18n.extraLocaleSettings = { LC_ADDRESS = "en_US.UTF-8"; LC_IDENTIFICATION = "en_US.UTF-8"; LC_MEASUREMENT = "en_US.UTF-8"; LC_MONETARY = "en_US.UTF-8"; LC_NAME = "en_US.UTF-8"; LC_NUMERIC = "en_US.UTF-8"; LC_PAPER = "en_US.UTF-8"; LC_TELEPHONE = "en_US.UTF-8"; LC_TIME = "en_US.UTF-8"; };

Enable the X11 windowing system.

services.xserver.enable = true;

Enable the KDE Plasma Desktop Environment.

services.xserver.displayManager.sddm.enable = true; services.xserver.desktopManager.plasma5.enable = true;

Configure keymap in X11

services.xserver = { layout = "us"; xkbVariant = ""; };

Enable CUPS to print documents.

services.printing.enable = true;

Enable sound with pipewire.

sound.enable = true; hardware.pulseaudio.enable = false; security.rtkit.enable = true; services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true;

If you want to use JACK applications, uncomment this

jack.enable = true;

# use the example session manager (no others are packaged yet so this is enabled by default,
# no need to redefine it in your config for now)
# media-session.enable = true;

};

Enable touchpad support (enabled default in most desktopManager).

services.xserver.libinput.enable = true;

Define a user account. Don't forget to set a password with ‘passwd’.

users.users.doomer = { isNormalUser = true; description = "doomer"; extraGroups = [ "networkmanager" "wheel" ]; packages = with pkgs; [ firefox kate thunderbird ]; };

/ nixpkgs.config.permittedInsecurePackages = [ "electron-12.2.3" ]; /

Allow unfree packages

nixpkgs.config.allowUnfree = true;

services.libreddit = { enable = true; openFirewall = true;

  # if the default values are required to change:
  # port = ;
  # address = "";
};

programs.steam = { enable = true;

remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play

# dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server

};

hardware.pulseaudio.support32Bit = true;

List packages installed in system profile. To search, run:

$ nix search wget

environment.systemPackages = with pkgs; [

home-manager

vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. wget

gaming apps and tools:

steamPackages.steam

steamPackages.steamcmd steamPackages.steam-runtime

steamPackages.steam-runtime-wrapped

steam-tui steam-run steam-acf

steamcontroller

steamtinkerlaunch steam-rom-manager

# gaming apps and tools:
# to show mesa version: glxinfo | grep version
glxinfo
dxvk

steamtinkerlaunch
yad

vulkan-tools
vulkan-loader
vulkan-headers
vulkan-caps-viewer
vulkan-tools-lunarg
vulkan-extension-layer
vulkan-validation-layers
vk-bootstrap
vkquake
vkBasalt

obs-studio-plugins.obs-vkcapture

lutris

heroic
gogdl

bottles

winetricks
wineWowPackages.waylandFull
protontricks

gamescope
gamemode
corectrl

cpu-x
unigine-valley
unigine-heaven
unigine-tropics
unigine-sanctuary
unigine-superposition

protonup-ng

];

environment.sessionVariables = rec { XDG_CACHE_HOME = "\${HOME}/.cache"; XDG_CONFIG_HOME = "\${HOME}/.config"; XDG_BIN_HOME = "\${HOME}/.local/bin"; XDG_DATA_HOME = "\${HOME}/.local/share";

Steam needs this to find Proton-GE:

STEAM_EXTRA_COMPAT_TOOLS_PATHS = "\${HOME}/.steam/root/compatibilitytools.d";
# note: this doesn't replace PATH, it just adds this to it
PATH = [ 
  "\${XDG_BIN_HOME}"
];

};

Some programs need SUID wrappers, can be configured further or are

started in user sessions.

programs.mtr.enable = true; programs.gnupg.agent = { enable = true; enableSSHSupport = true; };

List services that you want to enable:

Enable the OpenSSH daemon.

services.openssh.enable = true;

Open ports in the firewall.

networking.firewall.allowedTCPPorts = [ ... ];

networking.firewall.allowedUDPPorts = [ ... ];

Or disable the firewall altogether.

networking.firewall.enable = false;

This value determines the NixOS release from which the default

settings for stateful data, like file locations and database versions

on your system were taken. It‘s perfectly fine and recommended to leave

this value at the release version of the first install of this system.

Before changing this value read the documentation for this option

(e.g. man configuration.nix or on https://nixos.org/nixos/options.html).

system.stateVersion = "22.11"; # Did you read the comment?

}

zeta-00 commented 1 year ago

{ config, pkgs, ... }:

{

Home Manager needs a bit of information about you and the

paths it should manage.

home.username = "doomer"; home.homeDirectory = "/home/doomer";

nixpkgs.config.allowUnfree = true;

Packages that should be installed to the user profile.

home.packages = with pkgs; [

# flass operating systems to usb flash drives:
# etcher
gparted
usbimager
# Create bootable USB disks from Windows ISO images:
woeusb

# mkfs.ntfs terminal file format support for flashing windows image to a usb drive:
ntfs3g

libsForQt5.ark
# gzip
# p7zip

# chat apps:
element-desktop
discord
# gtk app to open reddit in desktp:
giara

# wine
# wineasio
# wine-wayland
# playonlinux

# gaming apps and tools:
# mesa
# dxvk

# vulkan-tools
# vulkan-loader
# vulkan-headers
# vulkan-caps-viewer
# vulkan-tools-lunarg
# vulkan-extension-layer
# vulkan-validation-layers
# vk-bootstrap
# vkquake
# vkBasalt

# obs-studio-plugins.obs-vkcapture

# lutris

# heroic
# gogdl

# bottles

# winetricks
# protontricks

# gamescope
# gamemode
# corectrl

# cpu-x
# unigine-valley
# unigine-heaven
# unigine-tropics
# unigine-sanctuary
# unigine-superposition

# protonup-ng

htop
fortune

];

This value determines the Home Manager release that your

configuration is compatible with. This helps avoid breakage

when a new Home Manager release introduces backwards

incompatible changes.

#

You can update Home Manager without changing this value. See

the Home Manager release notes for a list of state version

changes in each release.

home.stateVersion = "22.11";

Let Home Manager install and manage itself.

programs.home-manager.enable = true;

programs.emacs = { enable = true; extraPackages = epkgs: with epkgs; [ nix-mode magit ]; };

services.gpg-agent = { enable = true; defaultCacheTtl = 1800; enableSshSupport = true; }; }

jakehamilton commented 1 year ago

I took your config (formatted below) and ran nixos-rebuild build-vm -I nixos-config=./configuration.nix to build a VM image. Then I ran that image with: ./result/bin/run-nixos_office-pc-vm which executed qemu. After logging in with the initial password of "password" I opened Konsole and tried printing out the $STEAM_EXTRA_COMPAT_TOOLS_PATHS variable. It looks like everything is set up correctly:

Screenshot from 2023-04-09 19-00-47

configuration.nix ```nix # Edit this configuration file to define what should be installed on # your system. Help is available in the configuration.nix(5) man page # and in the NixOS manual (accessible by running ‘nixos-help’). { config, pkgs, ... }: { imports = [ # Include the results of the hardware scan. # ./hardware-configuration.nix ]; # Bootloader. boot.loader.systemd-boot.enable = true; # disallow user-entered kernel params: # boot.loader.systemd-boot.editor = false: # maximum kernel images to store in /boot: boot.loader.systemd-boot.configurationLimit = 3; # boot.loader.systemd-boot.consoleMode = "auto"; boot.loader.timeout = 10; boot.loader.efi.canTouchEfiVariables = true; boot.loader.efi.efiSysMountPoint = "/boot/efi"; # Setup keyfile # boot.initrd.secrets = { # "/crypto_keyfile.bin" = null; # }; # # Enable swap on luks # boot.initrd.luks.devices."luks-2966b9a7-ce9e-4c9a-ac7b-dd8c9c324359".device = "/dev/disk/by-uuid/2966b9a7-ce9e-4c9a-ac7b-dd8c9c324359"; # boot.initrd.luks.devices."luks-2966b9a7-ce9e-4c9a-ac7b-dd8c9c324359".keyFile = "/crypto_keyfile.bin"; /* boot.kernelParams = [ "i915.force_probe=56a0" ]; */ # boot.kernelPackages = pkgs.linuxPackages_latest; # boot.supportedFilesystems = [ "ntfs" ]; # boot.kernel.sysctl = # { # "vm.max_map_count" = 1048576; # }; # # FIXME: pick Mesa 23 update # hardware.opengl = # let # overrideVersion = mesa: # mesa.overrideAttrs (_: rec { # version = "23.0.0"; # src = pkgs.fetchurl { # url = "https://archive.mesa3d.org/mesa-${version}.tar.xz"; # hash = "sha256-AfPP83Y/CeCtq8uAEeSuvGrUj2pN1LrpBP6RhwfSU+Q="; # }; # }); # mesa23 = overrideVersion pkgs.mesa; # mesa23_32 = overrideVersion pkgs.pkgsi686Linux.mesa; # in # { # package = mesa23.drivers; # package32 = mesa23_32.drivers; # }; nix.settings.experimental-features = [ "nix-command" "flakes" ]; networking.hostName = "nixos_office-pc"; # Define your hostname. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. # Configure network proxy if necessary # networking.proxy.default = "http://user:password@proxy:port/"; # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; # Enable networking networking.networkmanager.enable = true; # Set your time zone. time.timeZone = "America/Denver"; # Select internationalisation properties. i18n.defaultLocale = "en_US.UTF-8"; i18n.extraLocaleSettings = { LC_ADDRESS = "en_US.UTF-8"; LC_IDENTIFICATION = "en_US.UTF-8"; LC_MEASUREMENT = "en_US.UTF-8"; LC_MONETARY = "en_US.UTF-8"; LC_NAME = "en_US.UTF-8"; LC_NUMERIC = "en_US.UTF-8"; LC_PAPER = "en_US.UTF-8"; LC_TELEPHONE = "en_US.UTF-8"; LC_TIME = "en_US.UTF-8"; }; # Enable the X11 windowing system. services.xserver.enable = true; # Enable the KDE Plasma Desktop Environment. services.xserver.displayManager.sddm.enable = true; services.xserver.desktopManager.plasma5.enable = true; # Configure keymap in X11 services.xserver = { layout = "us"; xkbVariant = ""; }; # Enable CUPS to print documents. services.printing.enable = true; # Enable sound with pipewire. sound.enable = true; hardware.pulseaudio.enable = false; security.rtkit.enable = true; services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; # If you want to use JACK applications, uncomment this jack.enable = true; # use the example session manager (no others are packaged yet so this is enabled by default, # no need to redefine it in your config for now) # media-session.enable = true; }; # Enable touchpad support (enabled default in most desktopManager). services.xserver.libinput.enable = true; # Define a user account. Don't forget to set a password with ‘passwd’. users.users.doomer = { isNormalUser = true; description = "doomer"; extraGroups = [ "networkmanager" "wheel" ]; initialPassword = "password"; packages = with pkgs; [ ]; }; /* nixpkgs.config.permittedInsecurePackages = [ "electron-12.2.3" ]; */ # Allow unfree packages nixpkgs.config.allowUnfree = true; # services.libreddit = # { # enable = true; # openFirewall = true; # # if the default values are required to change: # # port = ; # # address = ""; # }; # programs.steam = { # enable = true; # # remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play # # dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server # }; hardware.pulseaudio.support32Bit = true; # List packages installed in system profile. To search, run: # $ nix search wget environment.systemPackages = with pkgs; [ # home-manager vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. # wget # # gaming apps and tools: # # steamPackages.steam # steamPackages.steamcmd # steamPackages.steam-runtime # # steamPackages.steam-runtime-wrapped # steam-tui # steam-run # steam-acf # steamcontroller # steamtinkerlaunch # steam-rom-manager # # gaming apps and tools: # # to show mesa version: glxinfo | grep version # glxinfo # dxvk # steamtinkerlaunch # yad # vulkan-tools # vulkan-loader # vulkan-headers # vulkan-caps-viewer # vulkan-tools-lunarg # vulkan-extension-layer # vulkan-validation-layers # vk-bootstrap # vkquake # vkBasalt # obs-studio-plugins.obs-vkcapture # lutris # heroic # gogdl # bottles # winetricks # wineWowPackages.waylandFull # protontricks # gamescope # gamemode # corectrl # cpu-x # unigine-valley # unigine-heaven # unigine-tropics # unigine-sanctuary # unigine-superposition # protonup-ng ]; environment.sessionVariables = rec { XDG_CACHE_HOME = "\${HOME}/.cache"; XDG_CONFIG_HOME = "\${HOME}/.config"; XDG_BIN_HOME = "\${HOME}/.local/bin"; XDG_DATA_HOME = "\${HOME}/.local/share"; # Steam needs this to find Proton-GE: STEAM_EXTRA_COMPAT_TOOLS_PATHS = "\${HOME}/.steam/root/compatibilitytools.d"; # note: this doesn't replace PATH, it just adds this to it PATH = [ "\${XDG_BIN_HOME}" ]; }; # Some programs need SUID wrappers, can be configured further or are # started in user sessions. programs.mtr.enable = true; programs.gnupg.agent = { enable = true; enableSSHSupport = true; }; # List services that you want to enable: # Enable the OpenSSH daemon. services.openssh.enable = true; # Open ports in the firewall. # networking.firewall.allowedTCPPorts = [ ... ]; # networking.firewall.allowedUDPPorts = [ ... ]; # Or disable the firewall altogether. # networking.firewall.enable = false; # This value determines the NixOS release from which the default # settings for stateful data, like file locations and database versions # on your system were taken. It‘s perfectly fine and recommended to leave # this value at the release version of the first install of this system. # Before changing this value read the documentation for this option # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html). system.stateVersion = "22.11"; # Did you read the comment? } ```