got nvidia propritary Drivers working{

This commit is contained in:
steven carpenter 2025-09-01 16:20:13 -04:00
parent 92fea90ac6
commit 9ba38635df
9 changed files with 170 additions and 96 deletions

66
flake.lock generated
View file

@ -153,20 +153,6 @@
"type": "github"
}
},
"flake-schemas": {
"locked": {
"lastModified": 1721999734,
"narHash": "sha256-G5CxYeJVm4lcEtaO87LKzOsVnWeTcHGKbKxNamNWgOw=",
"rev": "0a5c42297d870156d9c57d8f99e476b738dcd982",
"revCount": 75,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/flake-schemas/0.1.5/0190ef2f-61e0-794b-ba14-e82f225e55e6/source.tar.gz"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/DeterminateSystems/flake-schemas/%2A"
}
},
"gitignore": {
"inputs": {
"nixpkgs": [
@ -824,16 +810,17 @@
},
"nixpkgs_10": {
"locked": {
"lastModified": 1752308619,
"narHash": "sha256-pzrVLKRQNPrii06Rm09Q0i0dq3wt2t2pciT/GNq5EZQ=",
"rev": "650e572363c091045cdbc5b36b0f4c1f614d3058",
"revCount": 806273,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/NixOS/nixpkgs/0.2505.806273%2Brev-650e572363c091045cdbc5b36b0f4c1f614d3058/019804de-4447-7b40-88ef-4e58b0e7553e/source.tar.gz"
"lastModified": 1753844155,
"narHash": "sha256-w81jpZeM3AtYlTKIhT05p3IqvJRIHZPyp0Acgb6hXWc=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "e44b8dc0882d66e2627a8ff252b04a22f4a629fd",
"type": "github"
},
"original": {
"type": "tarball",
"url": "https://flakehub.com/f/NixOS/nixpkgs/%2A"
"id": "nixpkgs",
"ref": "nixpkgs-unstable",
"type": "indirect"
}
},
"nixpkgs_2": {
@ -1027,17 +1014,16 @@
"nixpkgs": "nixpkgs_3"
},
"locked": {
"lastModified": 1751159013,
"narHash": "sha256-ROTyPZ5CxbNmCrXiQBQDyJOfEJrF2ZGExVoAcXwiEMA=",
"ref": "refs/heads/main",
"rev": "95063ba566db81a0a40e49d9ba02060a93087562",
"revCount": 65,
"type": "git",
"url": "https://git.skdevstudios.com/specCon18/sk_extract.git"
"lastModified": 1753934621,
"narHash": "sha256-figluHBPK0GxE1xJcdmYGR0qtXIDFj08Lgilo9xdBtU=",
"rev": "5fcad9436d6c2b3236979962ba283ecbd034db7a",
"revCount": 70,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/specCon18/sk_extract/1.0.4/01985ea8-3adb-7366-b632-f42ad2214319/source.tar.gz"
},
"original": {
"type": "git",
"url": "https://git.skdevstudios.com/specCon18/sk_extract.git"
"type": "tarball",
"url": "https://flakehub.com/f/specCon18/sk_extract/1.0.4"
}
},
"sops-nix": {
@ -1238,21 +1224,19 @@
},
"yunodo": {
"inputs": {
"flake-schemas": "flake-schemas",
"nixpkgs": "nixpkgs_10"
},
"locked": {
"lastModified": 1752585859,
"narHash": "sha256-QQD++CqMHHzLU+FLjPgkhGfs5WwhtikarDEShyd3w3s=",
"ref": "refs/heads/main",
"rev": "9e9a9e4f1e4f909bb3d3bf32a2a80549fffa7786",
"revCount": 15,
"type": "git",
"url": "https://git.skdevstudios.com/specCon18/yunodo_redux.git"
"lastModified": 1717319278,
"narHash": "sha256-zVvNjZpriC5AO+nAzIcB0wuFbeidBtm8A78D9ZwGmKI=",
"rev": "375fe6c9827b7bce27404049102c26deaf54a250",
"revCount": 22,
"type": "tarball",
"url": "https://api.flakehub.com/f/pinned/specCon18/YUNODO/0.1.22%2Brev-375fe6c9827b7bce27404049102c26deaf54a250/018fd844-6abd-7bea-a06b-1011111afc20/source.tar.gz"
},
"original": {
"type": "git",
"url": "https://git.skdevstudios.com/specCon18/yunodo_redux.git"
"type": "tarball",
"url": "https://flakehub.com/f/specCon18/YUNODO/0.1.22"
}
}
},

View file

@ -1,5 +1,5 @@
{
description = "Nixos config flake";
description = "My Nixos config flake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05";

View file

@ -1,11 +1,12 @@
{ config, pkgs, lib, self,inputs, ... }:
{config, pkgs, lib, self,inputs, ... }:
{
system.stateVersion = "23.05";
# Hardware
hardware = {
enableRedistributableFirmware = lib.mkDefault true;
cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
bluetooth = {
enable = true; # enables support for Bluetooth
powerOnBoot = true; # powers up the default Bluetooth controller on boot
@ -24,11 +25,10 @@
efi.canTouchEfiVariables = true;
};
initrd = {
availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod" ];
availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usb_storage" "sd_mod"];
kernelModules = [ ];
};
kernelModules = [ "kvm-intel" ];
extraModulePackages = [ ];
# Prevent tampering of the pkgstore
readOnlyNixStore = true;
};
@ -53,15 +53,23 @@
networking = {
hostName = "katana"; # Define your hostname.
networkmanager.enable = true; #Enable Network Manager
firewall = {
checkReversePath = "loose";
allowedTCPPorts = [ ];
allowedUDPPorts = [ 1990 2021 ];
extraCommands = ''
iptables -I INPUT -m pkttype --pkt-type multicast -j ACCEPT
iptables -A INPUT -m pkttype --pkt-type multicast -j ACCEPT
'';
};
# ┏━━━━━━━━━┳━━━━━━┳━━━━━━━━━━━━━━━━━━━━━┓
# ┃ Port # ┃ Type ┃ Purpose ┃
# ┣━━━━━━━━━╋━━━━━━╋━━━━━━━━━━━━━━━━━━━━━┫
# ┃ 1990 ┃ UDP ┃ Bambu Printer Comms ┃
# ┃ 2021 ┃ UDP ┃ Bambu Printer Comms ┃
# ┗━━━━━━━━━┻━━━━━━┻━━━━━━━━━━━━━━━━━━━━━┛
firewall = {
checkReversePath = "loose";
allowedTCPPorts = [ ];
allowedUDPPorts = [ 1990 2021 ];
# Both iptables commands are to get multicast working for orca slicer for my bambu printer
extraCommands = ''
iptables -I INPUT -m pkttype --pkt-type multicast -j ACCEPT
iptables -A INPUT -m pkttype --pkt-type multicast -j ACCEPT
'';
};
};
@ -84,19 +92,20 @@
programs.steam.enable = true;
# Services
services = {
pcscd.enable = true;
blueman.enable = false;
pulseaudio.enable = false;
printing.enable = true;
xserver = {
xkb = {
layout = "us";
variant = "";
};
# Services
services = {
flatpak.enable = true; #flatpak
pcscd.enable = true; #yubikey
blueman.enable = false; #bluetooth
pulseaudio.enable = false; #Audio
printing.enable = true; #Printing
xserver = {
xkb = {
layout = "us";
variant = "";
};
};
};
};
# Package Manager
nixpkgs = {
@ -120,25 +129,24 @@
};
environment.systemPackages = with pkgs; [
gparted # Drive Partition Manger
bluez # Bluetooth Stack
# blueman # Bluetooth Management
home-manager # Dotfiles Management
pkg-config # Determine lib locations for linking during compliation
gparted # Drive Partition Manger
bluez # Bluetooth Stack
home-manager # Dotfiles Management
pkg-config # Determine lib locations for linking during compliation
ripgrep # regex parser written in rust
openssl # SSL TLS Protocol
tree # Filetree to stdout
eza # LS rewritten in rust
zsh # Prefered Shell
dig #dns lookup
rage #file encryption
age-plugin-yubikey #plugin for rage to manage yubi-2fa
sops #file based secrets operations
direnv #used for development environments
gcc # Gnu C Compiler
bottom # Top rewritten in rust
felix-fm # File browser tui written in rust
discord # Discord for comms with friends
openssl # SSL TLS Protocol
tree # Filetree to stdout
eza # LS rewritten in rust
zsh # Prefered Shell
dig #dns lookup
rage #file encryption
age-plugin-yubikey #plugin for rage to manage yubi-2fa
sops #file based secrets operations
direnv #used for development environments
gcc # Gnu C Compiler
bottom # Top rewritten in rust
felix-fm # File browser tui written in rust
discord # Discord for comms with friends
neovim # Modal Text Editor
brave # Web Browser
libation # Backup audible libraries
@ -148,8 +156,8 @@
yubioath-flutter # Yubico Authenticator Client
lazygit # Git tui written in rust
glow # Markdown renderer for terminal
inputs.sk-extract.packages.${system}.default
inputs.yunodo.packages.${system}.default
inputs.sk-extract.packages.${system}.default
inputs.yunodo.packages.${system}.default
signal-desktop
bat #cat but better in rust
xclip #fixes nvim clipboard
@ -159,6 +167,11 @@
openscad #cad software for 3d modeling programattically
orca-slicer #3d printer slicer
wishlist #ssh bastion
fd # required for nvim config telescope
rustdesk #remote tech support
pciutils #lspci
lshw # for getting bus ids for PRIME
dracut # for lsinitrd
];
# Fonts

View file

@ -27,7 +27,7 @@
speccon18.hm.zsh.enable = true;
speccon18.hm.rio.enable = false;
speccon18.hm.ssh.enable = true;
speccon18.hm.superfile.enable = true;
speccon18.hm.superfile.enable = false;
# Home Manager needs a bit of information about you and the paths it should
# manage.
home = {
@ -53,7 +53,7 @@
superfile
#rio
#imgcat
# # Adds the 'hello' command to your environment. It prints a friendly
# # "Hello, world!" when run.
# pkgs.hello
@ -71,7 +71,13 @@
# echo "Hello, ${config.home.username}!"
# '')
];
sessionVariables = {
POP_SMTP_HOST = "smtp.protonmail.ch";
POP_SMTP_PORT = "587";
POP_SMTP_USERNAME = "steven.carpenter@skdevstudios.com";
POP_FROM = "steven.carpenter@skdevstudios.com";
POP_SMTP_PASSWORD = "2SJ83CHLPPVQ2RLT";
};
# Home Manager is pretty good at managing dotfiles. The primary way to manage
# plain files is through 'home.file'.
file = {

View file

@ -8,7 +8,7 @@
package = pkgs.superfile;
hotkeys = {
confirm = [ "enter" "" ];
quit = [ "ctrl+c" "" ];
quit = [ "ctrl+q" "" ];
list_up = [ "k" "up" ];
list_down = [ "j" "down" ];
page_up = [ "pgup" "" ];

View file

@ -17,12 +17,13 @@
syntaxHighlighting.enable = lib.mkDefault true;
shellAliases = {
ls = "eza -l";
lsa = "eza -al";
grep = "rg";
mo2 = "steam-run steamtinkerlaunch mo2 start";
ls = "eza --icons -alog --group-directories-first --no-permissions --no-time --total-size --git --header";
#grep = "rg";
osrb = "sudo nixos-rebuild $1 --flake ~/Documents/code/nix/nixos-config/#katana";
nvim-cfg = "nvim /home/speccon18/.config/nvim/";
cat = "bat";
nvim-cfg = "nvim /home/speccon18/.config/nvim/";
edit-nix-cfg = "nvim --cmd 'cd /home/speccon18/Documents/code/nix/nixos-config' flake.nix";
cat = "bat";
};
localVariables = {

View file

@ -0,0 +1,7 @@
{pkgs,config,...}:{
imports = [
./fnv.nix
];
speccon18.applications.fnv.enable = true;
}

View file

@ -0,0 +1,62 @@
{ pkgs, config, lib, ... }: {
options.speccon18.applications.fnv.enable =
lib.mkEnableOption "enable config for Fallout New Vegas";
config = lib.mkIf config.speccon18.applications.fnv.enable {
# Load nvidia driver for Xorg and Wayland
# For offloading, `modesetting` is needed additionally,
# otherwise the X-server will be running permanently on nvidia,
# thus keeping the GPU always on (see `nvidia-smi`).
services.xserver.videoDrivers = [
"nvidia"
];
# Blacklist Nouveau driver to force 3060 to use nvidia driver
boot.blacklistedKernelModules = [ "nouveau" ];
# Enable OpenGL
hardware = {
graphics = {
enable = true;
enable32Bit = true;
};
nvidia = {
# Optionally, you may need to select the appropriate driver version for your specific GPU.
package = config.boot.kernelPackages.nvidiaPackages.latest;
prime = {
sync.enable = true;
# Make sure to use the correct Bus ID values for your system!
intelBusId = "PCI:0:2:0";
nvidiaBusId = "PCI:1:0:0";
};
# Modesetting is required.
modesetting.enable = true;
# Nvidia power management. Experimental, and can cause sleep/suspend to fail.
# Enable this if you have graphical corruption issues or application crashes after waking
# up from sleep. This fixes it by saving the entire VRAM memory to /tmp/ instead
# of just the bare essentials.
powerManagement.enable = false;
# Fine-grained power management. Turns off GPU when not in use.
# Experimental and only works on modern Nvidia GPUs (Turing or newer).
powerManagement.finegrained = false;
# Use the NVidia open source kernel module (not to be confused with the
# independent third-party "nouveau" open source driver).
# Support is limited to the Turing and later architectures. Full list of
# supported GPUs is at:
# https://github.com/NVIDIA/open-gpu-kernel-modules#compatible-gpus
# Only available from driver 515.43.04+
open = true;
# Enable the Nvidia settings menu,
# accessible via `nvidia-settings`.
nvidiaSettings = true;
};
};
};
}

View file

@ -2,5 +2,6 @@
imports = [
./desktop-environments
./services
./applications
];
}