51 lines
1.3 KiB
Nix
51 lines
1.3 KiB
Nix
{ config, pkgs, ... }:
|
|
|
|
let
|
|
waylandSessions = "${config.services.displayManager.sessionData.desktops}/share/wayland-sessions";
|
|
x11Sessions = "${config.services.displayManager.sessionData.desktops}/share/xsessions";
|
|
moduleName = "hm-greeter";
|
|
in
|
|
{
|
|
|
|
users.users.greeter = {
|
|
isSystemUser = true;
|
|
group = "greeter";
|
|
};
|
|
users.groups.greeter = {};
|
|
|
|
|
|
services.greetd = {
|
|
enable = true;
|
|
|
|
settings = {
|
|
terminal.vt = 1;
|
|
|
|
default_session = {
|
|
# Run Hyprland as the greeter compositor
|
|
command = "${pkgs.dbus}/bin/dbus-run-session ${pkgs.hyprland}/bin/start-hyprland -- --config /etc/greetd/greeter.conf";
|
|
user = "greeter";
|
|
};
|
|
};
|
|
};
|
|
|
|
# Install the greeter Hyprland config file
|
|
environment.etc."greetd/greeter.conf".source = ./conf/greeter.conf;
|
|
|
|
# Give qtgreet access to session files on NixOS
|
|
environment.etc."greetd/qtgreet-session-paths".text = ''
|
|
WAYLAND_SESSIONS=${waylandSessions}
|
|
X11_SESSIONS=${x11Sessions}
|
|
'';
|
|
|
|
# Needed for Wayland logins in many setups
|
|
services.seatd.enable = true;
|
|
|
|
environment.systemPackages = with pkgs; [
|
|
qtgreet
|
|
qt6Packages.qt6ct
|
|
kdePackages.breeze
|
|
kdePackages.breeze-icons
|
|
];
|
|
home.file.".nixlog/loaded.${moduleName}-module-loaded".text = "loaded\n";
|
|
}
|