diff --git a/desktops/hyprland/default.nix b/desktops/hyprland/default.nix index 7e72967..baa959b 100644 --- a/desktops/hyprland/default.nix +++ b/desktops/hyprland/default.nix @@ -2,7 +2,6 @@ { imports = [ - ./home.nix ./system.nix ]; } \ No newline at end of file diff --git a/desktops/hyprland/system.nix b/desktops/hyprland/system.nix index 5e8d898..fd5fc03 100644 --- a/desktops/hyprland/system.nix +++ b/desktops/hyprland/system.nix @@ -2,7 +2,7 @@ { programs.hyprland.enable = true; - services.displayManager.sddm.enable = true; + services.displayManager.sddm.wayland.enable = true; xdg.portal = { enable = true; diff --git a/desktops/plasma/default.nix b/desktops/plasma/default.nix index 3b6aab0..b4f6722 100644 --- a/desktops/plasma/default.nix +++ b/desktops/plasma/default.nix @@ -2,7 +2,7 @@ { services.desktopManager.plasma6.enable = true; - services.displayManager.sddm.enable = true; + services.displayManager.sddm.wayland.enable = true; xdg.portal.enable = true; xdg.portal.extraPortals = [ pkgs.xdg-desktop-portal-kde ]; diff --git a/home/default.nix b/home/default.nix index eb95d72..121e831 100644 --- a/home/default.nix +++ b/home/default.nix @@ -4,6 +4,7 @@ imports = [ ./programs/bash.nix ./programs/git.nix + ../desktops/hyprland/home.nix ]; home.username = "river"; diff --git a/home/programs/eza.nix b/home/programs/eza.nix index 844b278..e4a98c8 100644 --- a/home/programs/eza.nix +++ b/home/programs/eza.nix @@ -3,6 +3,6 @@ { programs.eza = { enable = true; - withIcons = true; + icons = "auto"; }; } diff --git a/home/programs/git.nix b/home/programs/git.nix index 462094d..e415619 100644 --- a/home/programs/git.nix +++ b/home/programs/git.nix @@ -3,6 +3,13 @@ { programs.git = { enable = true; - withDelta = true; + }; + programs.delta = { + enable = true; + options = { + features = "decorations interactive"; + navigate = true; + hyperlinks = true; + }; }; } diff --git a/hosts/laptop/configuration.nix b/hosts/laptop/configuration.nix index b659cac..cadb01a 100644 --- a/hosts/laptop/configuration.nix +++ b/hosts/laptop/configuration.nix @@ -16,23 +16,34 @@ ]; boot = { + zfs.forceImportRoot = false; supportedFilesystems = [ "zfs" ]; - loader = { - initrd = { - systemd.enable = true; - luks.devices."cryptroot" = { - device = "/dev/disk/by-partlabel/luks"; - allowDiscards = true; - }; - - initrd.availableKernelModules = [ - "tpm_tis" - "tpm_crb" - ]; + initrd = { + luks.devices."cryptroot" = { + device = "/dev/disk/by-partlabel/luks"; + allowDiscards = true; }; - efi.canTouchEfiVariables = true; + + availableKernelModules = [ + "tpm_tis" + "tpm_crb" + ]; }; + + loader = { + efi = { + canTouchEfiVariables = true; + efiSysMountPoint = "/boot"; # Adjust if your EFI partition is mounted elsewhere (e.g., /boot/efi) + }; + grub = { + enable = true; + device = "nodev"; # "nodev" is required for EFI installs + efiSupport = true; + useOSProber = true; # Set to true if you are dual-booting with Windows/other distros + }; + }; + kernelModules = [ "tpm_tis" "tpm_crb" diff --git a/hosts/laptop/disko.nix b/hosts/laptop/disko.nix index 29d5a3d..c7c7bcb 100644 --- a/hosts/laptop/disko.nix +++ b/hosts/laptop/disko.nix @@ -1,71 +1,68 @@ { disk, ... }: { - disko.devices.disk.main = { - type = "disk"; - device = disk; - content = { - type = "gpt"; - - partitions = { - ESP = { - size = "1G"; - type = "EF00"; - - content = { - type = "filesystem"; - format = "vfat"; - mountpoint = "/boot"; - }; - }; - - luks = { - size = "100%"; - - content = { - type = "luks"; - name = "cryptroot"; - - # important: allow TPM-based unlocking - settings = { - allowDiscards = true; - }; - - # this is key for TPM workflows - initrdUnlock = true; + disko.devices = { + disk.main = { + type = "disk"; + device = disk; + content = { + type = "gpt"; + partitions = { + ESP = { + size = "1G"; + type = "EF00"; content = { - type = "zfs"; - pool = "rpool"; + type = "filesystem"; + format = "vfat"; + mountpoint = "/boot"; + }; + }; + + luks = { + size = "100%"; + content = { + type = "luks"; + name = "cryptroot"; + # important: allow TPM-based unlocking + settings = { + allowDiscards = true; + }; + + # this is key for TPM workflows + initrdUnlock = true; + content = { + type = "zfs"; + pool = "rpool"; + }; }; }; }; }; }; - }; - zpool.rpool = { - type = "zpool"; - - rootFsOptions = { - compression = "zstd"; - "com.sun:auto-snapshot" = "true"; - }; - - datasets = { - root = { - type = "zfs_fs"; - mountpoint = "/"; + # Moved inside disko.devices + zpool.rpool = { + type = "zpool"; + rootFsOptions = { + compression = "zstd"; + "com.sun:auto-snapshot" = "true"; }; + datasets = { + root = { + type = "zfs_fs"; + mountpoint = "/"; + }; - nix = { - type = "zfs_fs"; - mountpoint = "/nix"; - }; + nix = { + type = "zfs_fs"; + mountpoint = "/nix"; + }; - home = { - type = "zfs_fs"; - mountpoint = "/home"; + home = { + type = "zfs_fs"; + mountpoint = "/home"; + }; }; }; }; diff --git a/modules/networking/core/default.nix b/modules/networking/core/default.nix index ade2877..1aa5468 100644 --- a/modules/networking/core/default.nix +++ b/modules/networking/core/default.nix @@ -12,16 +12,18 @@ services.resolved = { enable = true; - dnssec = "true"; - domains = [ "~." ]; - fallbackDns = [ - "192.168.1.193" # Pi-hole - "1.1.1.1" # Cloudflare - "1.0.0.1" # Cloudflare (Secondary) - ]; - extraConfig = '' - DNSOverTLS=yes - ''; + + settings.Resolve = { + dnssec = "true"; + DNSOverTLS = "true"; + domains = [ "~." ]; + fallbackDns = [ + "192.168.1.193" # Pi-hole + "1.1.1.1" # Cloudflare + "1.0.0.1" # Cloudflare (Secondary) + ]; + }; + }; networking.nftables.enable = true; diff --git a/modules/networking/tailscale.nix b/modules/networking/tailscale.nix index 3dd9a7e..8980329 100644 --- a/modules/networking/tailscale.nix +++ b/modules/networking/tailscale.nix @@ -1,4 +1,4 @@ -{ ... }: +{ config, ... }: { services.tailscale.enable = true; diff --git a/modules/virtualization/qemu.nix b/modules/virtualization/qemu.nix index 8905a2e..756c18b 100644 --- a/modules/virtualization/qemu.nix +++ b/modules/virtualization/qemu.nix @@ -6,7 +6,6 @@ virtualisation.libvirtd = { enable = true; qemu = { - ovmf.enable = true; swtpm.enable = true; }; };