41 lines
1.2 KiB
Nix
41 lines
1.2 KiB
Nix
# https://github.com/glabrie/dotfiles/blob/main/modules/system/settings/greetd.nix
|
|
{ inputs, ... }: {
|
|
flake.modules.nixos.greetd = { pkgs, lib, config, ... }:
|
|
let
|
|
niriPackage = if config.programs.niri.enable then config.programs.niri.package else pkgs.niri;
|
|
niriExe = lib.getExe niriPackage;
|
|
regreetExe = lib.getExe config.programs.regreet.package;
|
|
greeterNiriConfig = pkgs.writeText "niri-greeter.kdl" ''
|
|
spawn-at-startup "${regreetExe}"
|
|
hotkey-overlay {
|
|
skip-at-startup
|
|
}
|
|
'';
|
|
in {
|
|
programs.regreet.enable = true;
|
|
|
|
services.greetd = {
|
|
enable = true;
|
|
settings = {
|
|
default_session = {
|
|
command = "${pkgs.dbus}/bin/dbus-run-session -- ${niriExe} --config ${greeterNiriConfig}";
|
|
user = "greeter";
|
|
};
|
|
};
|
|
};
|
|
|
|
systemd.services.greetd.serviceConfig = {
|
|
Type = "idle";
|
|
StandardInput = "tty";
|
|
StandardOutput = "tty";
|
|
StandardError = "journal"; # Without this errors will spam on screen
|
|
# Without these bootlogs will spam on screen
|
|
TTYReset = true;
|
|
TTYVHangup = true;
|
|
TTYVTDisallocate = true;
|
|
};
|
|
|
|
# Let's allow our keyring to work from the start
|
|
security.pam.services.greetd.enableGnomeKeyring = true;
|
|
};
|
|
} |