From f037c63d840c58f1b8b0a49cea30f365a96b44a0 Mon Sep 17 00:00:00 2001 From: Bloxx12 Date: Wed, 9 Apr 2025 15:31:18 +0200 Subject: [PATCH 1/5] boot/module.nix: cleanup, add plymouth --- modules/system/boot/module.nix | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/modules/system/boot/module.nix b/modules/system/boot/module.nix index bc3eeb1..dbc245b 100644 --- a/modules/system/boot/module.nix +++ b/modules/system/boot/module.nix @@ -18,6 +18,7 @@ in { Set the boot loader's timeout. This is 0 by default, but preferably longer on remote servers to make switching to previous generations easier. ''; type = int; + # I love spamming space default = 0; }; }; @@ -35,16 +36,20 @@ in { boot = { tmp.useTmpfs = true; initrd = { - verbose = true; + verbose = false; systemd.enable = true; }; loader = { efi.canTouchEfiVariables = true; - # I love spamming space timeout = cfg.timeout; systemd-boot = { enable = cfg.systemd-boot.enable; + # INFO: Leaving this enabled is a security vulneratibility, + # since we can just start /bin/sh from there and get root access. + # Since I have FDE, this isn't _as_ critical, but it would still be + # a bad idea to leave it enabled editor = mkForce false; + consoleMode = "auto"; configurationLimit = 5; }; grub = { @@ -55,11 +60,25 @@ in { }; }; plymouth = { - enable = false; - # font = "${pkgs.jetbrains-mono}/share/fonts/truetype/JetBrainsMono-Regular.ttf"; - themePackages = [pkgs.plymouth-matrix-theme]; - theme = "matrix"; + enable = true; + themePackages = [ + (pkgs.adi1090x-plymouth-themes.override + { + selected_themes = [ + "hud_3" + ]; + }) + ]; + theme = "hud_3"; }; }; + powerManagement = { + powerDownCommands = '' + ${pkgs.plymouth} --show-splash + ''; + resumeCommands = '' + ${pkgs.plymouth} --quit + ''; + }; }; } From 42ea3cb8b0c11e47deda4639c6df4aa3ad2d704f Mon Sep 17 00:00:00 2001 From: Bloxx12 Date: Wed, 9 Apr 2025 15:31:18 +0200 Subject: [PATCH 2/5] systemd/module.nix: faster startup --- modules/system/os/systemd/module.nix | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/modules/system/os/systemd/module.nix b/modules/system/os/systemd/module.nix index 6033e84..d1c15d5 100644 --- a/modules/system/os/systemd/module.nix +++ b/modules/system/os/systemd/module.nix @@ -1,7 +1,12 @@ -{pkgs, ...}: { +{lib, ...}: let + inherit (lib.modules) mkForce; +in { config.systemd = { # faster startup - targets.network-online.wantedBy = pkgs.lib.mkForce []; # Normally ["multi-user.target"] - services.NetworkManager-wait-online.wantedBy = pkgs.lib.mkForce []; # Normally ["network-online.target"] + targets.network-online.wantedBy = mkForce []; # Normally ["multi-user.target"] + services = { + NetworkManager-wait-online.wantedBy = mkForce []; # Normally ["network-online.target"] + systemd-udev-settle.enable = false; + }; }; } From e10d26a27a3884657c2b1713c322542b04839b42 Mon Sep 17 00:00:00 2001 From: Bloxx12 Date: Wed, 9 Apr 2025 15:31:18 +0200 Subject: [PATCH 3/5] greetd/module.nix: Hyprland autologin --- modules/services/greetd/module.nix | 36 +++++++++++++++++++----------- 1 file changed, 23 insertions(+), 13 deletions(-) diff --git a/modules/services/greetd/module.nix b/modules/services/greetd/module.nix index ffec7f4..fad5c66 100644 --- a/modules/services/greetd/module.nix +++ b/modules/services/greetd/module.nix @@ -4,11 +4,14 @@ pkgs, ... }: let - cfg = config.modules.services.greetd; - uwsmEnabled = config.modules.services.uwsm.enable; + inherit (lib.meta) getExe; + inherit (lib.modules) mkIf; inherit (lib.options) mkOption mkEnableOption; inherit (lib.types) str listOf; - inherit (lib.modules) mkIf; + + inherit (config.meta.mainUser) username; + cfg = config.modules.services.greetd; + uwsmEnabled = config.modules.services.uwsm.enable; in { options.modules.services.greetd = { enable = mkEnableOption "greetd"; @@ -25,24 +28,31 @@ in { type = str; default = if uwsmEnabled - then "uwsm start Hyprland" + then "${getExe config.programs.uwsm.package} start Hyprland" else "Hyprland"; }; }; config = mkIf cfg.enable { - services.greetd = { + services.greetd = let + session = { + # command = '' + # ${pkgs.greetd.tuigreet}/bin/tuigreet \ + # -c \"${cfg.session}\" \ + # -r + # -t --time-format "DD.MM.YYYY" + # --asteriks''; + command = "${getExe config.programs.uwsm.package} start hyprland-uwsm.desktop"; + user = username; + }; + in { enable = true; package = pkgs.greetd; - settings.default_session = { - command = '' - ${pkgs.greetd.tuigreet}/bin/tuigreet \ - -c \"${cfg.session}\" \ - -r - -t --time-format "DD.MM.YYYY" - --asteriks''; - }; vt = 7; + settings = { + default_session = session; + initial_session = session; + }; }; }; } From 42ce613f540595279edecf792e4216780623ee7d Mon Sep 17 00:00:00 2001 From: Bloxx12 Date: Wed, 9 Apr 2025 15:31:18 +0200 Subject: [PATCH 4/5] hyprland/exec.nix: add uwsm finalize and start hyprlock automatically --- modules/wms/wayland/hyprland/exec.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/modules/wms/wayland/hyprland/exec.nix b/modules/wms/wayland/hyprland/exec.nix index 6a2c5f5..c3b09cf 100644 --- a/modules/wms/wayland/hyprland/exec.nix +++ b/modules/wms/wayland/hyprland/exec.nix @@ -1,15 +1,18 @@ { config, + lib, pkgs, ... }: let # inherit (config.modules.style) cursor; - inherit (builtins) toString; + inherit (lib.meta) getExe; in { programs.hyprland.settings = { # Hyprland settings # Programs which get executed at Hyprland start. exec-once = [ + "uwsm finalize" + "hyprctl setcursor BreezeX-RosePine-Linux 32" "[workspace special:keepassxc; silent;tile] ${pkgs.keepassxc}/bin/keepassxc" @@ -22,6 +25,8 @@ in { "${pkgs.wlsunset}/bin/wlsunset -S 06:00 -s 20:00" "${pkgs.lxqt.lxqt-policykit}/bin/lxqt-policykit-agent" "hyprctl dispatch split-workspace 1" + + "${getExe pkgs.hyprlock}" ]; }; } From 8bb3d9dba9f7be2b01067310715a292c7eb0ad47 Mon Sep 17 00:00:00 2001 From: Bloxx12 Date: Wed, 9 Apr 2025 15:31:18 +0200 Subject: [PATCH 5/5] networking/module.nix: networking improvements --- modules/system/os/networking/module.nix | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/modules/system/os/networking/module.nix b/modules/system/os/networking/module.nix index fd4ca78..dd7b01c 100644 --- a/modules/system/os/networking/module.nix +++ b/modules/system/os/networking/module.nix @@ -6,6 +6,17 @@ in { ]; networking = { enableIPv6 = true; + + # INFO: This disables wpa_supplicant, + # I use nenetworkmanager instead. + wireless.enable = false; + + dhcpcd = { + # faster boot times + wait = "background"; + extraConfig = "noarp"; + }; + nameservers = [ # quad9 DNS "9.9.9.9" @@ -14,8 +25,16 @@ in { }; services.resolved = { enable = true; + dnssec = "false"; # quad9 dns fallbackDns = ["9.9.9.9" "2620::fe::fe"]; }; users.users.${username}.extraGroups = ["networkmanager"]; + + systemd = { + network = { + enable = true; + wait-online.anyInterface = true; + }; + }; }