summaryrefslogtreecommitdiff
path: root/modules/boot/default.nix
blob: d0f585248565637ef9178e58b2031a1422392679 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
{ pkgs, config, ... }:
let
  configurationLimit = 10;
in
{
  boot = {
    loader = {
      timeout = 5;

      efi = {
        canTouchEfiVariables = true;
        efiSysMountPoint = "/boot";
      };

      systemd-boot = {
        enable = false;
        editor = true;
        consoleMode = "max";
        memtest86.enable = true;
        netbootxyz.enable = true;
        configurationLimit = configurationLimit;
      };

      grub = {
        enable = true;
        device = "nodev";
        efiSupport = true;
        useOSProber = true;
        configurationLimit = configurationLimit;
        memtest86.enable = true;
        gfxmodeEfi = "1920x1080";
        gfxmodeBios = "1920x1080";
        splashMode = "normal";

        extraEntries = ''
          menuentry "Arch Linux (linux-clear)" {
            linux /vmlinuz-linux-clear
            initrd /amd-ucode.img
            initrd /booster-linux-clear.img
            options root=PARTUUID=f510f35d-76a0-4469-aad5-da449541ecd2 rootflags=subvol=@ rw rootfstype=btrfs psi=1 nvidia_drm.modeset=1
          }
        '';

        theme = pkgs.fetchFromGitHub {
          owner = "Lxtharia";
          repo = "minegrub-theme";
          rev = "193b3a7c3d432f8c6af10adfb465b781091f56b3";
          sha256 = "1bvkfmjzbk7pfisvmyw5gjmcqj9dab7gwd5nmvi8gs4vk72bl2ap";
        };
      };
    };

    kernelPackages = pkgs.linuxPackages_zen;
    kernelModules = [ "v4l2loopback" ];
    extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback ];

    kernelParams = [
      "nvidia-drm.fbdev=1"
      "nvidia.NVreg_PreserveVideoMemoryAllocations=1"
    ];
  };
}