nixos/modules: cosmic-greeter: init

This commit is contained in:
Pratham Patel 2025-03-24 00:55:17 +05:30 committed by Masum Reza
parent c1236157ef
commit cd85a8a827
2 changed files with 71 additions and 0 deletions

View file

@ -579,6 +579,7 @@
./services/development/vsmartcard-vpcd.nix
./services/development/zammad.nix
./services/display-managers/default.nix
./services/display-managers/cosmic-greeter.nix
./services/display-managers/greetd.nix
./services/display-managers/sddm.nix
./services/display-managers/ly.nix

View file

@ -0,0 +1,70 @@
# SPDX-License-Identifier: MIT
# SPDX-FileCopyrightText: Lily Foster <lily@lily.flowers>
# Portions of this code are adapted from nixos-cosmic
# https://github.com/lilyinstarlight/nixos-cosmic
{
config,
lib,
pkgs,
...
}:
let
cfg = config.services.displayManager.cosmic-greeter;
in
{
meta.maintainers = with lib.maintainers; [
thefossguy
HeitorAugustoLN
nyabinary
ahoneybun
];
options.services.displayManager.cosmic-greeter = {
enable = lib.mkEnableOption "COSMIC greeter";
package = lib.mkPackageOption pkgs "cosmic-greeter" { };
};
config = lib.mkIf cfg.enable {
services.greetd = {
enable = true;
settings = {
default_session = {
user = "cosmic-greeter";
command = ''${lib.getExe' pkgs.coreutils "env"} XCURSOR_THEME="''${XCURSOR_THEME:-Pop}" systemd-cat -t cosmic-greeter ${lib.getExe pkgs.cosmic-comp} ${lib.getExe cfg.package}'';
};
};
};
# Daemon for querying background state and such
systemd.services.cosmic-greeter-daemon = {
wantedBy = [ "multi-user.target" ];
before = [ "greetd.service" ];
serviceConfig = {
Type = "dbus";
BusName = "com.system76.CosmicGreeter";
ExecStart = lib.getExe' cfg.package "cosmic-greeter-daemon";
Restart = "on-failure";
};
};
# The greeter user is hardcoded in `cosmic-greeter`
users.groups.cosmic-greeter = { };
users.users.cosmic-greeter = {
description = "COSMIC login greeter user";
isSystemUser = true;
home = "/var/lib/cosmic-greeter";
createHome = true;
group = "cosmic-greeter";
};
# Setup PAM authentication for the `cosmic-greeter` user
security.pam.services.cosmic-greeter = { };
hardware.graphics.enable = true;
services.accounts-daemon.enable = true;
services.dbus.packages = [ cfg.package ];
services.libinput.enable = true;
};
}