diff --git a/modules/_hardware/work-hardware.nix b/modules/_hardware/work-hardware.nix index 16557cc..7a65b27 100644 --- a/modules/_hardware/work-hardware.nix +++ b/modules/_hardware/work-hardware.nix @@ -1,26 +1,31 @@ -{ config, lib, modulesPath, ... }: { - imports = [ (modulesPath + "/installer/scan/not-detected.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, ... }: - # AMD Ryzen 7 4000 series (Renoir) - boot.initrd.availableKernelModules = [ "xhci_pci" "ahci" "nvme" "usbhid" "sd_mod" ]; - boot.kernelModules = [ "kvm-amd" "amdgpu" ]; - boot.extraModulePackages = []; +{ + imports = + [ (modulesPath + "/installer/scan/not-detected.nix") + ]; + + boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "ahci" "usbhid" "usb_storage" "sd_mod" ]; + boot.initrd.kernelModules = [ ]; + boot.kernelModules = [ "kvm-amd" ]; + boot.extraModulePackages = [ ]; + + fileSystems."/" = + { device = "/dev/disk/by-uuid/1c2840f7-3924-477d-a8e7-707c95874441"; + fsType = "ext4"; + }; + + fileSystems."/boot" = + { device = "/dev/disk/by-uuid/24C6-A993"; + fsType = "vfat"; + options = [ "fmask=0022" "dmask=0022" ]; + }; + + swapDevices = [ ]; - networking.useDHCP = lib.mkDefault true; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; - - hardware.cpu.amd.updateMicrocode = - lib.mkDefault config.hardware.enableRedistributableFirmware; - - # PRIME offload: AMD iGPU renders the display, NVIDIA dGPU handles offloaded workloads. - # Fill in the Bus IDs before building the ISO. - # To get them: boot any live Linux on the machine and run: - # lspci -D | grep -E '(VGA|3D|Display)' - # Then convert the PCI address (e.g. 0000:06:00.0) to the format "PCI:6:0:0". - hardware.nvidia.prime = { - offload.enable = true; - offload.enableOffloadCmd = true; - amdgpuBusId = "PCI:FILL:IN:ME"; # TODO: AMD Radeon Vega iGPU bus ID - nvidiaBusId = "PCI:FILL:IN:ME"; # TODO: NVIDIA GTX 1650 dGPU bus ID - }; + hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; } diff --git a/modules/_home/default.nix b/modules/_home/default.nix index 32cfbe0..949cd83 100644 --- a/modules/_home/default.nix +++ b/modules/_home/default.nix @@ -4,11 +4,7 @@ let in { home.packages = with pkgs; [ firefox - discord - stremio-linux-shell - obsidian kitty - qbittorrent claude-code mpv ]; diff --git a/modules/_home/niri.nix b/modules/_home/niri.nix index 4b4d2c8..51d8bab 100644 --- a/modules/_home/niri.nix +++ b/modules/_home/niri.nix @@ -1,7 +1,4 @@ -{ config, pkgs, ... }: -let - wallpaper = ../../wallpapers/miku.png; -in { +{ config, pkgs, ... }: { home.sessionVariables = { XDG_CURRENT_DESKTOP = "niri"; XDG_SESSION_DESKTOP = "niri"; @@ -77,8 +74,6 @@ in { prefer-no-csd - spawn-at-startup "swww-daemon" - spawn-at-startup "swww" "img" "${wallpaper}" "--transition-type" "none" spawn-at-startup "quickshell" screenshot-path "${config.xdg.userDirs.pictures}/screenshots/%Y-%m-%d %H-%M-%S.png" @@ -115,7 +110,7 @@ in { // System Mod+Shift+E { quit; } - Mod+L { spawn "swaylock" "-i" "${wallpaper}" "--scaling" "fill"; } + Mod+L { spawn "swaylock"; } // Volume XF86AudioRaiseVolume { spawn "wpctl" "set-volume" "@DEFAULT_AUDIO_SINK@" "5%+"; } diff --git a/modules/den.nix b/modules/den.nix index 1c99733..5ab8526 100644 --- a/modules/den.nix +++ b/modules/den.nix @@ -45,8 +45,8 @@ in { den.aspects.wayland den.aspects.niri den.aspects.work-specific - den.aspects.dev den.aspects.secrets + den.aspects.dev ]; nixos = { system.stateVersion = "25.11"; diff --git a/modules/dev.nix b/modules/dev.nix index ff01c23..9f7acd6 100644 --- a/modules/dev.nix +++ b/modules/dev.nix @@ -19,42 +19,42 @@ in { tracy # Infrastructure - docker-compose + # docker-compose # IDE - jetbrains.idea-oss + # jetbrains.idea-oss # Neovim vimPlugins.blink-cmp # LSPs bash-language-server - lua-language-server + # lua-language-server nixd - vscode-langservers-extracted - yaml-language-server - dockerfile-language-server - marksman - clang-tools - jdt-language-server - typescript-language-server - pyright - taplo - sqls - astro-language-server - angular-language-server - vue-language-server - tailwindcss-language-server - qt6Packages.qtdeclarative - wgsl-analyzer + # vscode-langservers-extracted + # yaml-language-server + # dockerfile-language-server + # marksman + # clang-tools + # jdt-language-server + # typescript-language-server + # pyright + # taplo + # sqls + # astro-language-server + # angular-language-server + # vue-language-server + # tailwindcss-language-server + # qt6Packages.qtdeclarative + # wgsl-analyzer ]; - programs.java = { - enable = true; - package = pkgs-unstable.jdk17; - }; + # programs.java = { + # enable = true; + # package = pkgs-unstable.jdk17; + # }; - virtualisation.docker.enable = true; - users.users.${username}.extraGroups = [ "docker" ]; + # virtualisation.docker.enable = true; + # users.users.${username}.extraGroups = [ "docker" ]; }; } diff --git a/modules/work.nix b/modules/work.nix index 05ec912..52b0e6e 100644 --- a/modules/work.nix +++ b/modules/work.nix @@ -2,26 +2,32 @@ den.aspects.work-specific.nixos = { pkgs, config, ... }: { imports = [ ./_hardware/work-hardware.nix - ./_hardware/notebook-disko.nix - inputs.disko.nixosModules.disko ]; - hardware.graphics = { - enable = true; - enable32Bit = true; + hardware = { + graphics = { + enable = true; + enable32Bit = true; + }; + + nvidia = { + modesetting.enable = true; + open = false; + nvidiaSettings = true; + powerManagement.enable = true; + powerManagement.finegrained = true; + package = config.boot.kernelPackages.nvidiaPackages.stable; + # AMD iGPU drives the display; NVIDIA dGPU handles offloaded rendering. + # Run `lspci -D | grep -E '(VGA|3D|Display)'` to verify Bus IDs. + prime = { + offload.enable = true; + offload.enableOffloadCmd = true; + amdgpuBusId = "PCI:5:0:0"; + nvidiaBusId = "PCI:1:0:0"; + }; + }; }; - hardware.nvidia = { - modesetting.enable = true; - open = false; - nvidiaSettings = true; - # Fine-grained power management is required for PRIME offload mode. - powerManagement.enable = true; - powerManagement.finegrained = true; - package = config.boot.kernelPackages.nvidiaPackages.stable; - }; - - # amdgpu drives the display; nvidia is available for offloaded rendering. services.xserver.videoDrivers = [ "amdgpu" "nvidia" ]; environment.sessionVariables = { @@ -37,8 +43,7 @@ allowedUDPPorts = []; }; - services.thermald.enable = true; - powerManagement.enable = true; + powerManagement.enable = true; services.tlp = { enable = true; @@ -49,19 +54,20 @@ }; boot = { - initrd.kernelModules = [ "dm-crypt" "amdgpu" ]; + initrd.kernelModules = [ "amdgpu" ]; + kernelModules = [ "kvm-amd" "nvidia" "nvidia_modeset" "nvidia_uvm" "nvidia_drm" ]; initrd.compressor = "zstd"; kernelParams = [ "nvidia.NVreg_PreserveVideoMemoryAllocations=1" ]; loader = { grub = { - enable = true; - device = "nodev"; - efiSupport = true; - configurationLimit = 2; - enableCryptodisk = true; + enable = true; + device = "nodev"; + efiSupport = true; + efiInstallAsRemovable = true; + configurationLimit = 10; }; - efi.canTouchEfiVariables = true; + efi.canTouchEfiVariables = false; }; }; };