diff options
author | Danny Milosavljevic <dannym@friendly-machines.com> | 2025-06-22 02:29:02 +0200 |
---|---|---|
committer | Danny Milosavljevic <dannym@friendly-machines.com> | 2025-07-12 02:39:54 +0200 |
commit | 72996cd573f90aeaec88fa1de9f2382b96a7864d (patch) | |
tree | 87dba8da35a90e51cd3a45db357a272a25606198 | |
parent | 227fb11eb3b74213664d3df9380180b32030e07c (diff) |
services: greetd: Support initial-session.
* gnu/services/base.scm (<greetd-terminal-configuration>): Add
initial-session-user, initial-session-command.
* doc/guix.texi (Base Services): Document them.
Change-Id: Iaf7a8203f34794bc36b031166e1ff7005d7a7104
-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 |