summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/guix.texi9
-rw-r--r--gnu/services/base.scm17
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