greetd: Add autologin options
This commit is contained in:
parent
f4f8395e0e
commit
02ad5bd33f
@ -16,10 +16,26 @@ let
|
|||||||
in
|
in
|
||||||
{
|
{
|
||||||
config = lib.mkIf cfg.enable {
|
config = lib.mkIf cfg.enable {
|
||||||
|
assertions = lib.optionals cfg.settings.autologin [
|
||||||
|
{
|
||||||
|
assertion = ! builtins.isNull cfg.settings.autologinUser;
|
||||||
|
message = "greetd: Auto-login is enabled but no user is configured";
|
||||||
|
}
|
||||||
|
{
|
||||||
|
assertion = ! builtins.isNull cfg.settings.command;
|
||||||
|
message = "greetd: Auto-login is enabled but no login command is configured";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
environment.systemPackages = [ loginwrap ];
|
environment.systemPackages = [ loginwrap ];
|
||||||
services.greetd = {
|
services.greetd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings = {
|
settings = {
|
||||||
|
initial_session = lib.mkIf cfg.settings.autologin {
|
||||||
|
command = cfg.settings.finalCommand;
|
||||||
|
user = cfg.settings.autologinUser;
|
||||||
|
};
|
||||||
|
|
||||||
default_session = lib.mkMerge [
|
default_session = lib.mkMerge [
|
||||||
|
|
||||||
# tuigreet configuration
|
# tuigreet configuration
|
||||||
@ -69,7 +85,7 @@ in
|
|||||||
command-login-wrapped = [ "loginwrap" ] ++ prevcmd;
|
command-login-wrapped = [ "loginwrap" ] ++ prevcmd;
|
||||||
cmd = if (builtins.isNull prevcmd) then null else
|
cmd = if (builtins.isNull prevcmd) then null else
|
||||||
(if st.loginShell then command-login-wrapped else prevcmd);
|
(if st.loginShell then command-login-wrapped else prevcmd);
|
||||||
in lib.escapeShellArgs cmd;
|
in if builtins.isNull cmd then null else lib.escapeShellArgs cmd;
|
||||||
readOnly = true;
|
readOnly = true;
|
||||||
};
|
};
|
||||||
command = lib.mkOption {
|
command = lib.mkOption {
|
||||||
@ -96,6 +112,19 @@ in
|
|||||||
default = "${pkgs.nixfiles-assets}/share/wallpapers/nixfiles-static/Djayjesse-finding_life.png";
|
default = "${pkgs.nixfiles-assets}/share/wallpapers/nixfiles-static/Djayjesse-finding_life.png";
|
||||||
example = "femboy-bee.png";
|
example = "femboy-bee.png";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
autologin = lib.mkOption {
|
||||||
|
description = "Whether to configure auto-login";
|
||||||
|
type = bool;
|
||||||
|
default = false;
|
||||||
|
example = true;
|
||||||
|
};
|
||||||
|
autologinUser = lib.mkOption {
|
||||||
|
description = "User to automatically log in";
|
||||||
|
type = nullOr str;
|
||||||
|
default = null;
|
||||||
|
example = "username";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
presets.tuigreet.enable = lib.mkOption {
|
presets.tuigreet.enable = lib.mkOption {
|
||||||
description = "tuigreet greetd configuration";
|
description = "tuigreet greetd configuration";
|
||||||
|
Loading…
x
Reference in New Issue
Block a user