Initial working Steam install on thenix

Thenix is just Theiarch, but running on NixOS rather than Arch. Theiarch
of course was just an Arch Linux build of Theiawin, which was just a
Windows VR computer.
This commit is contained in:
Eli Ribble 2024-12-17 12:46:35 -07:00
parent 9a648d903e
commit 29c5ab1438
2 changed files with 136 additions and 0 deletions

View File

@ -0,0 +1,94 @@
# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page, on
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).
{ config, lib, pkgs, ... }:
{
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
];
# Use the systemd-boot EFI boot loader.
boot.loader.efi.canTouchEfiVariables = true;
boot.loader.grub.device = "nodev"; # or "nodev" for efi only
boot.loader.systemd-boot.enable = true;
environment.systemPackages = with pkgs; [
neovim
steamcmd
tmux
wget
];
hardware.pulseaudio.enable = true;
# Select internationalisation properties.
i18n.defaultLocale = "en_US.UTF-8";
# Set up networking
networking.hostName = "thenix"; # Define your hostname.
networking.networkmanager.enable = true; # Easiest to use and most distros use this by default.
nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [
"steam" "steam-original" "steam-run" "steamcmd"
];
programs.firefox.enable = true;
# Make neovim the default editor
programs.neovim.enable = true;
programs.neovim.defaultEditor = true;
programs.steam = {
enable = true;
remotePlay.openFirewall = true;
dedicatedServer.openFirewall = true;
};
# Enable the KDE Plasma Desktop Environment
services.desktopManager.plasma6.enable = true;
services.displayManager.sddm.enable = true;
services.displayManager.sddm.wayland.enable = true;
services.displayManager.autoLogin = {
enable = true;
user = "eliribble";
};
services.openssh.enable = true;
systemd.network.enable = true;
systemd.network.wait-online.enable = true;
# Set your time zone.
time.timeZone = "America/Phoenix";
# Define a user account. Don't forget to set a password with passwd.
users.users.eliribble = {
isNormalUser = true;
initialPassword = "let_eliribble_in";
extraGroups = [ "wheel" ]; # Enable sudo for the user.
};
# This option defines the first version of NixOS you have installed on this particular machine,
# and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
#
# Most users should NEVER change this value after the initial install, for any reason,
# even if you've upgraded your system to a new NixOS release.
#
# This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
# so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
# to actually do that.
#
# This value being lower than the current NixOS release does NOT mean your system is
# out of date, out of support, or vulnerable.
#
# Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
# and migrated your data accordingly.
#
# For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
system.stateVersion = "24.10"; # Did you read the comment?
}

View File

@ -0,0 +1,42 @@
# Do not modify this file! It was generated by nixos-generate-config
# and may be overwritten by future invocations. Please make changes
# to /etc/nixos/configuration.nix instead.
{ config, lib, pkgs, modulesPath, ... }:
{
imports =
[ (modulesPath + "/installer/scan/not-detected.nix")
];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usb_storage" "usbhid" "sd_mod" ];
boot.initrd.kernelModules = [ ];
boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ];
fileSystems."/" =
{ device = "/dev/disk/by-label/NIXROOT";
fsType = "ext4";
};
fileSystems."/boot" =
{ device = "/dev/disk/by-label/NIXBOOT";
fsType = "vfat";
options = [ "fmask=0022" "dmask=0022" ];
};
fileSystems."/mnt/bigdisk" =
{ device = "/dev/disk/by-uuid/134983b3-ebfc-46c9-a37a-e585a665a50f";
fsType = "btrfs";
};
swapDevices = [ ];
# Enables DHCP on each ethernet and wireless interface. In case of scripted networking
# (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.useDHCP = lib.mkDefault true;
# networking.interfaces.enp7s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}