diff options
-rw-r--r-- | doc/guix.texi | 9 | ||||
-rw-r--r-- | gnu/services/base.scm | 17 |
2 files changed, 23 insertions, 3 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index aa6562e984..5725a09364 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -20896,6 +20896,15 @@ Make this terminal active on start of @code{greetd}. Whether to source @file{/etc/profile} and @file{~/.profile}, when they exist. +@item @code{initial-session-user} (default: @samp{#f}) +The user to use for running the initial session, if any. + +@item @code{initial-session-command} (default: @code{#f}) +The command to run the first time the greeter starts up, to auto-login. +For that to be useful, you should also set @code{initial-session-user}. +Then, greetd will automatically log in with that user and execute that command. +When you eventually log out again, the regular greeter will appear. + @item @code{default-session-user} (default: @samp{"greeter"}) The user to use for running the greeter. diff --git a/gnu/services/base.scm b/gnu/services/base.scm index cfebfcda0f..cfe7099dae 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -3954,7 +3954,10 @@ to handle." (source-profile? greetd-source-profile? (default #t)) (default-session-user greetd-default-session-user (default "greeter")) (default-session-command greetd-default-session-command - (default (greetd-agreety-session)))) + (default (greetd-agreety-session))) + (initial-session-user greetd-initial-session-user (default #f)) + (initial-session-command greetd-initial-session-command + (default #f))) (define (default-config-file-name config) (string-join (list "config-" (greetd-terminal-vt config) ".toml") "")) @@ -3969,7 +3972,9 @@ to handle." (terminal-vt (greetd-terminal-vt config)) (terminal-switch (greetd-terminal-switch config)) (default-session-user (greetd-default-session-user config)) - (default-session-command (greetd-default-session-command config))) + (default-session-command (greetd-default-session-command config)) + (initial-session-user (greetd-initial-session-user config)) + (initial-session-command (greetd-initial-session-command config))) (mixed-text-file config-file-name "[general]\n" @@ -3979,7 +3984,13 @@ to handle." "switch = " (if terminal-switch "true" "false") "\n" "[default_session]\n" "user = " default-session-user "\n" - "command = " default-session-command "\n"))) + "command = " default-session-command "\n" + (if (and initial-session-user initial-session-command) + (string-append + "[initial_session]\n" + "user = " initial-session-user "\n" + "command = " initial-session-command "\n") + "")))) (define %greetd-file-systems (list (file-system |