Compare commits

..

1 Commits

Author SHA1 Message Date
kris c1099227a1 Add GnuPG 2026-06-28 21:58:34 -04:00
4 changed files with 62 additions and 122 deletions
-12
View File
@@ -1,12 +0,0 @@
Copyright (C) 2026 by Kris Lamoureux <kris@lamoureux.io>
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted.
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
-19
View File
@@ -1,19 +0,0 @@
<!--
SPDX-FileCopyrightText: 2026 Kris Lamoureux <kris@lamoureux.io>
SPDX-License-Identifier: 0BSD
-->
# nix-gaming
NixOS gaming VM, running under Proxmox with GPU passthrough.
This is **not a generic template**; it's the actual config for my specific
gaming-focused VM. The goal is to keep as much of this machine's setup as
possible here.
### Features
- **Desktop** — KDE Plasma on Wayland
- **GPU** — NVIDIA GPU drivers
- **Kernel** — Linux 7.x
- **Boot** — EFI boot via systemd-boot
+62 -82
View File
@@ -1,6 +1,3 @@
# SPDX-FileCopyrightText: 2026 Kris Lamoureux <kris@lamoureux.io>
# SPDX-License-Identifier: 0BSD
# 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`).
@@ -8,42 +5,28 @@
{ config, lib, pkgs, ... }:
{
###############
### Imports ###
###############
imports =
[ # Include the results of the hardware scan.
./hardware-configuration.nix
];
###############
### Nixpkgs ###
###############
# Need nonfree for nvidia software and gaming.
nixpkgs.config.allowUnfree = true;
############
### Boot ###
############
# Use the systemd-boot EFI boot loader.
boot.loader.systemd-boot.enable = true;
boot.loader.efi.canTouchEfiVariables = true;
# Machine name
networking.hostName = "nix-gaming";
# Use latest kernel.
boot.kernelPackages = pkgs.linuxPackages_latest;
##################
### Networking ###
##################
# Need nonfree for nvidia software and gaming
nixpkgs.config.allowUnfree = true;
# Machine name.
networking.hostName = "nix-gaming";
# Add NetworkManager profile with static IP.
# Configure network connections interactively with nmcli or nmtui.
networking.networkmanager.enable = true;
# Add NetworkManager profile with static IP
networking.networkmanager.ensureProfiles.profiles = {
"ens18-static" = {
connection = {
@@ -62,19 +45,13 @@
};
};
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
############
### Time ###
############
# Set your time zone.
time.timeZone = "America/New_York";
# Configure network proxy if necessary
# networking.proxy.default = "http://user:password@proxy:port/";
# networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";
# Select internationalisation properties.
# i18n.defaultLocale = "en_US.UTF-8";
# console = {
@@ -83,36 +60,30 @@
# useXkbConfig = true; # use xkb.options in tty.
# };
################
### Hardware ###
################
# Enable the X11 windowing system.
# services.xserver.enable = true;
# Enable passthrough NVIDIA GPU.
hardware.graphics.enable = true;
hardware.nvidia.modesetting.enable = true;
hardware.nvidia.open = false;
# Some Proton games may need 32-bit graphics support.
hardware.graphics.enable32Bit = true;
# Bluetooth.
hardware.bluetooth.enable = true;
hardware.bluetooth.powerOnBoot = true;
################
### Services ###
################
# Enable KDE Plasma + Wayland.
# Enable KDE Plasma + Wayland
services.desktopManager.plasma6.enable = true;
services.displayManager.sddm.enable = true;
services.displayManager.sddm.wayland.enable = true;
services.xserver.xkb.layout = "us";
services.xserver.videoDrivers = [ "nvidia" ];
# Enable the OpenSSH daemon.
services.openssh.enable = true;
services.openssh.settings.PasswordAuthentication = false;
# Enable passthrough NVIDIA GPU
hardware.graphics.enable = true;
services.xserver.videoDrivers = [ "nvidia" ];
hardware.nvidia.modesetting.enable = true;
hardware.nvidia.open = false;
# Bluetooth
hardware.bluetooth.enable = true;
hardware.bluetooth.powerOnBoot = true;
# Configure keymap in X11
services.xserver.xkb.layout = "us";
# services.xserver.xkb.options = "eurosign:e,caps:escape";
# Enable CUPS to print documents.
# services.printing.enable = true;
# Enable sound.
# services.pulseaudio.enable = true;
@@ -122,10 +93,10 @@
# pulse.enable = true;
# };
#############
### Users ###
#############
# Enable touchpad support (enabled default in most desktopManager).
# services.libinput.enable = true;
# Define a user account. Don't forget to set a password with 'passwd'.
users.users.kris = {
isNormalUser = true;
description = "Kris";
@@ -138,11 +109,7 @@
];
};
###############
## Programs ###
###############
# Drop once dotfiles move to Home Manager.
# Drop once dotfiles move to Home Manager
programs.bash.interactiveShellInit = ''
[[ -f ~/.bashrc ]] && source ~/.bashrc
'';
@@ -155,20 +122,7 @@
};
};
# Add Valve's Steam for games.
programs.steam.enable = true;
# 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;
# };
#################
## Environment ##
#################
# programs.firefox.enable = true;
# List packages installed in system profile.
# You can use https://search.nixos.org/ to find more packages (and options).
@@ -189,6 +143,31 @@
wget
];
# 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;
services.openssh.settings.PasswordAuthentication = false;
# Open ports in the firewall.
# networking.firewall.allowedTCPPorts = [ ... ];
# networking.firewall.allowedUDPPorts = [ ... ];
# Or disable the firewall altogether.
# networking.firewall.enable = false;
# Copy the NixOS configuration file and link it from the resulting system
# (/run/current-system/configuration.nix). This is useful in case you
# accidentally delete configuration.nix.
# system.copySystemConfiguration = true;
# 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.
#
@@ -209,3 +188,4 @@
system.stateVersion = "26.05"; # Did you read the comment?
}
-9
View File
@@ -1,6 +1,3 @@
# SPDX-FileCopyrightText: 2026 Kris Lamoureux <kris@lamoureux.io>
# SPDX-License-Identifier: 0BSD
# 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.
@@ -27,12 +24,6 @@
options = [ "fmask=0022" "dmask=0022" ];
};
fileSystems."/srv/steam" = {
device = "/dev/disk/by-label/STEAMGAMES";
fsType = "ext4";
options = [ "noatime" "nofail" ];
};
swapDevices = [ ];
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";