Compare commits

...

5 commits

5 changed files with 81 additions and 23 deletions

View file

@ -4,11 +4,14 @@
pkgs, pkgs,
... ...
}: let }: let
cfg = config.modules.services.greetd; inherit (lib.meta) getExe;
uwsmEnabled = config.modules.services.uwsm.enable; inherit (lib.modules) mkIf;
inherit (lib.options) mkOption mkEnableOption; inherit (lib.options) mkOption mkEnableOption;
inherit (lib.types) str listOf; 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 { in {
options.modules.services.greetd = { options.modules.services.greetd = {
enable = mkEnableOption "greetd"; enable = mkEnableOption "greetd";
@ -25,24 +28,31 @@ in {
type = str; type = str;
default = default =
if uwsmEnabled if uwsmEnabled
then "uwsm start Hyprland" then "${getExe config.programs.uwsm.package} start Hyprland"
else "Hyprland"; else "Hyprland";
}; };
}; };
config = mkIf cfg.enable { 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; enable = true;
package = pkgs.greetd; 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; vt = 7;
settings = {
default_session = session;
initial_session = session;
};
}; };
}; };
} }

View file

@ -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. 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; type = int;
# I love spamming space
default = 0; default = 0;
}; };
}; };
@ -35,16 +36,20 @@ in {
boot = { boot = {
tmp.useTmpfs = true; tmp.useTmpfs = true;
initrd = { initrd = {
verbose = true; verbose = false;
systemd.enable = true; systemd.enable = true;
}; };
loader = { loader = {
efi.canTouchEfiVariables = true; efi.canTouchEfiVariables = true;
# I love spamming space
timeout = cfg.timeout; timeout = cfg.timeout;
systemd-boot = { systemd-boot = {
enable = cfg.systemd-boot.enable; 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; editor = mkForce false;
consoleMode = "auto";
configurationLimit = 5; configurationLimit = 5;
}; };
grub = { grub = {
@ -55,11 +60,25 @@ in {
}; };
}; };
plymouth = { plymouth = {
enable = false; enable = true;
# font = "${pkgs.jetbrains-mono}/share/fonts/truetype/JetBrainsMono-Regular.ttf"; themePackages = [
themePackages = [pkgs.plymouth-matrix-theme]; (pkgs.adi1090x-plymouth-themes.override
theme = "matrix"; {
selected_themes = [
"hud_3"
];
})
];
theme = "hud_3";
}; };
}; };
powerManagement = {
powerDownCommands = ''
${pkgs.plymouth} --show-splash
'';
resumeCommands = ''
${pkgs.plymouth} --quit
'';
};
}; };
} }

View file

@ -6,6 +6,17 @@ in {
]; ];
networking = { networking = {
enableIPv6 = true; enableIPv6 = true;
# INFO: This disables wpa_supplicant,
# I use nenetworkmanager instead.
wireless.enable = false;
dhcpcd = {
# faster boot times
wait = "background";
extraConfig = "noarp";
};
nameservers = [ nameservers = [
# quad9 DNS # quad9 DNS
"9.9.9.9" "9.9.9.9"
@ -14,8 +25,16 @@ in {
}; };
services.resolved = { services.resolved = {
enable = true; enable = true;
dnssec = "false";
# quad9 dns # quad9 dns
fallbackDns = ["9.9.9.9" "2620::fe::fe"]; fallbackDns = ["9.9.9.9" "2620::fe::fe"];
}; };
users.users.${username}.extraGroups = ["networkmanager"]; users.users.${username}.extraGroups = ["networkmanager"];
systemd = {
network = {
enable = true;
wait-online.anyInterface = true;
};
};
} }

View file

@ -1,7 +1,12 @@
{pkgs, ...}: { {lib, ...}: let
inherit (lib.modules) mkForce;
in {
config.systemd = { config.systemd = {
# faster startup # faster startup
targets.network-online.wantedBy = pkgs.lib.mkForce []; # Normally ["multi-user.target"] targets.network-online.wantedBy = mkForce []; # Normally ["multi-user.target"]
services.NetworkManager-wait-online.wantedBy = pkgs.lib.mkForce []; # Normally ["network-online.target"] services = {
NetworkManager-wait-online.wantedBy = mkForce []; # Normally ["network-online.target"]
systemd-udev-settle.enable = false;
};
}; };
} }

View file

@ -1,15 +1,18 @@
{ {
config, config,
lib,
pkgs, pkgs,
... ...
}: let }: let
# inherit (config.modules.style) cursor; # inherit (config.modules.style) cursor;
inherit (builtins) toString; inherit (lib.meta) getExe;
in { in {
programs.hyprland.settings = { programs.hyprland.settings = {
# Hyprland settings # Hyprland settings
# Programs which get executed at Hyprland start. # Programs which get executed at Hyprland start.
exec-once = [ exec-once = [
"uwsm finalize"
"hyprctl setcursor BreezeX-RosePine-Linux 32" "hyprctl setcursor BreezeX-RosePine-Linux 32"
"[workspace special:keepassxc; silent;tile] ${pkgs.keepassxc}/bin/keepassxc" "[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.wlsunset}/bin/wlsunset -S 06:00 -s 20:00"
"${pkgs.lxqt.lxqt-policykit}/bin/lxqt-policykit-agent" "${pkgs.lxqt.lxqt-policykit}/bin/lxqt-policykit-agent"
"hyprctl dispatch split-workspace 1" "hyprctl dispatch split-workspace 1"
"${getExe pkgs.hyprlock}"
]; ];
}; };
} }