119 lines
4.2 KiB
Nix
119 lines
4.2 KiB
Nix
# 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 = ["xhci_pci" "ahci" "nvme" "usbhid" "usb_storage" "sd_mod"];
|
||
# Enable early Nvidia kernel modesetting
|
||
# https://wiki.archlinux.org/title/GDM#GDM_ignores_Wayland_and_uses_X.Org_by_default (not fixed by this)
|
||
# https://wiki.archlinux.org/title/Kernel_mode_setting#Early_KMS_start
|
||
initrd.kernelModules = ["nvidia" "nvidia_modeset" "nvidia_uvm" "nvidia_drm"]; # NVIDIA
|
||
# initrd.kernelModules = ["amdgpu"]; # Initrd modules are always loaded, e.g. when they are required to mount the rootfs
|
||
# kernelModules = ["kvm-intel" "iwlwifi"];
|
||
kernelModules = ["kvm-amd"];
|
||
|
||
# extraModprobeConfig = ''
|
||
# options iwlwifi 11n_disable=1 wd_disable=0
|
||
# '';
|
||
|
||
# Specific to used kernel (currently linux_zen)
|
||
extraModulePackages = with config.boot.kernelPackages; [
|
||
# new-lg4ff # Logitech force feedback
|
||
v4l2loopback
|
||
];
|
||
};
|
||
|
||
fileSystems."/" = {
|
||
device = "/dev/disk/by-uuid/68bd46a0-e95c-4764-a006-44bd9975a6c2";
|
||
fsType = "ext4";
|
||
options = ["noatime" "nodiratime" "discard"];
|
||
};
|
||
|
||
fileSystems."/boot/efi" = {
|
||
device = "/dev/disk/by-uuid/36A9-3D74";
|
||
fsType = "vfat";
|
||
};
|
||
|
||
swapDevices = lib.mkForce [
|
||
# {
|
||
# device = "/var/swap";
|
||
# # size = 1024 * 32 * 2; # twice the RAM for hibernation
|
||
# size = 1024 * 8; # Without hibernation 4.0 GB to 0.5 x RAM
|
||
# }
|
||
];
|
||
|
||
# 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 false; # NOTE: Set to false bc systemd-networkd
|
||
# networking.interfaces.enp0s31f6.useDHCP = lib.mkDefault true;
|
||
# networking.interfaces.enp4s0u2.useDHCP = lib.mkDefault true;
|
||
# networking.interfaces.wlp3s0.useDHCP = lib.mkDefault true;
|
||
|
||
# networking.networkmanager.enable = true;
|
||
# networking.wireless.iwd.enable = true;
|
||
# networking.networkmanager.wifi.backend = "iwd";
|
||
|
||
# nixpkgs.config.allowUnfree = true;
|
||
|
||
hardware = {
|
||
# Use all redistributable firmware (i.e. nonfree)
|
||
enableAllFirmware = true;
|
||
enableRedistributableFirmware = true;
|
||
# cpu.intel.updateMicrocode = true;
|
||
cpu.amd.updateMicrocode = true;
|
||
|
||
nvidia = {
|
||
# package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||
package = config.boot.kernelPackages.nvidiaPackages.beta; # NOTE: Beta, might (?) prevent discord screen-share
|
||
|
||
modesetting.enable = true; # Not officially supported by NVidia but needed for wayland
|
||
open = false; # TODO: Build failure on 2024-18-01
|
||
nvidiaSettings = false; # Those are for x-server
|
||
};
|
||
|
||
# video.hidpi.enable = lib.mkDefault true; # No longer has any effect
|
||
opengl = {
|
||
enable = true;
|
||
|
||
# Vulkan
|
||
# driSupport = true; # NOTE: Deprecated
|
||
driSupport32Bit = true;
|
||
|
||
# AMD: https://nixos.wiki/wiki/AMD_GPU
|
||
extraPackages = with pkgs; [
|
||
# amdvlk # RADV (mesa) and AMDVLK (amd) can be used simultaneously
|
||
|
||
# VAAPI/VDPAU: https://nixos.wiki/wiki/Accelerated_Video_Playback
|
||
vaapiVdpau # Taken from wiki, this is also part of nixos-hardware/common/gpu/nvidia
|
||
libvdpau-va-gl # Taken from wiki
|
||
|
||
# libvdpau # NOTE: Don't know if needed/where it belongs...
|
||
# libva # NOTE: Don't know if needed/where it belongs...
|
||
|
||
nvidia-vaapi-driver # Experimental, doesn't work with chromium
|
||
];
|
||
};
|
||
|
||
# sane.enable = true; # Scanning
|
||
# xpadneo.enable = true; # Xbox Controller
|
||
};
|
||
|
||
# environment.variables.AMD_VULKAN_ICD = "RADV"; # Choose mesa driver by default
|
||
environment.variables = {
|
||
LIBVA_DRIVER_NAME = "nvidia";
|
||
GBM_BACKEND = "nvidia-drm";
|
||
};
|
||
|
||
powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
|
||
}
|