refactor modules/desktop

Signed-off-by: unexplrd <unexplrd@linerds.us>
This commit is contained in:
2025-05-23 14:34:42 +03:00
parent 56bad06595
commit 52dcc3279e
11 changed files with 137 additions and 143 deletions

View File

@ -0,0 +1,16 @@
{config, ...}: {
imports = [
./gnome-keyring.nix
./greeter.nix
./pam-rtprio.nix
./pipewire.nix
];
fonts.fontDir.enable = true;
security = {
pam = {
services.greetd.enableGnomeKeyring = config.services.greetd.enable && config.services.gnome.gnome-keyring.enable;
};
};
services.udisks2.enable = true;
programs.dconf.enable = true;
}

View File

@ -0,0 +1,25 @@
{
lib,
pkgs,
config,
...
}: let
inherit (lib) mkEnableOption mkIf;
cfg = config.module.desktop.gnome-keyring;
in {
options = {
module.desktop.gnome-keyring.enable = mkEnableOption "enable gnome keyring";
};
config = mkIf cfg.enable {
environment.systemPackages = with pkgs; [
gcr_4
libsecret
];
# programs.seahorse.enable = true;
services.gnome.gnome-keyring.enable = true;
xdg.portal.config.common = {
"org.freedesktop.impl.portal.Secret" = ["gnome-keyring"];
};
};
}

View File

@ -0,0 +1,48 @@
{
lib,
pkgs,
config,
...
}: let
inherit (lib) mkOption mkIf getExe types mkMerge;
cfg = config.module.desktop;
in {
options = {
module.desktop.displayManager = mkOption {
default = "greetd";
type = types.enum [
"cosmic"
"gdm"
"greetd"
"sddm"
];
};
};
config = mkMerge [
(mkIf (cfg.displayManager == "cosmic") {
services.displayManager.cosmic-greeter.enable = true;
})
(mkIf (cfg.displayManager == "gdm") {
services.xserver.displayManager.gdm.enable = true;
})
(mkIf (cfg.displayManager == "greetd") {
programs.regreet.enable = true;
services.greetd = {
enable = true;
vt = 1;
settings = {
default_session = {
command = "${getExe pkgs.cage} -s -m last -- ${getExe pkgs.greetd.regreet}";
};
};
};
})
(mkIf (cfg.displayManager == "sddm") {
services.displayManager.sddm = {
enable = true;
wayland.enable = true;
};
})
];
}

View File

@ -0,0 +1,10 @@
{
security.pam.loginLimits = [
{
domain = "@users";
item = "rtprio";
type = "-";
value = -1;
}
];
}