Compare commits
5 commits
95e99962d6
...
8bb3d9dba9
Author | SHA1 | Date | |
---|---|---|---|
8bb3d9dba9 | |||
42ce613f54 | |||
e10d26a27a | |||
42ea3cb8b0 | |||
f037c63d84 |
5 changed files with 81 additions and 23 deletions
|
@ -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;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
'';
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -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}"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue