From patchwork Mon May 5 14:40:23 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Benjamin X-Patchwork-Id: 42326 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id E717D27BC4A; Mon, 5 May 2025 15:41:31 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-6.4 required=5.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,MAILING_LIST_MULTI,RCVD_IN_DNSWL_BLOCKED, RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL,RCVD_IN_VALIDITY_SAFE, SPF_HELO_PASS,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.6 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 1849627BC49 for ; Mon, 5 May 2025 15:41:30 +0100 (BST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1uBx0F-000060-LM; Mon, 05 May 2025 10:41:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uBx0D-00005G-7k for guix-patches@gnu.org; Mon, 05 May 2025 10:41:05 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1uBx0C-00046b-Pr; Mon, 05 May 2025 10:41:04 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:Date:From:To:Subject; bh=l561zqQTIMrpbYNduKzbRDyu6MPxaPNGxvCNapoT9/U=; b=dJObOE6WWh3oluLQ6oq+uUvHabaflyzetYjCxWP4pT5qb1BYnw9hfwWPDV5ub5V+WhMsxANskVxzekDIQ/NevpSvt5rVAE8Ko1jsyBPxUDllIpyV4EhYrssF81wuHLRcV758LK7sy+DU+Je+Ky7Gfxdo5dbKNxOaejKef8yMfpQ2OC+X+2F2m5YqraJir2Yly2z0DaA+4fhzUq5UZGiwlY4NSyGBsXZfIGwxk4s0G7JECRocanM149/B57g0uuFkLfkuq+mabYNfGGfQEzX/eXifXboLqZI0OU/nAReWxtnGNv9tWxPtxAB+TnmBu8qtwQpp7yfDd9/niMIOPxqUuQ==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1uBx0A-0002nN-Jm; Mon, 05 May 2025 10:41:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#78261] [PATCH] services: greetd: Add support for initial session. Resent-From: Benjamin Original-Sender: "Debbugs-submit" Resent-CC: gabriel@erlikon.ch, ludo@gnu.org, maxim.cournoyer@gmail.com, guix-patches@gnu.org Resent-Date: Mon, 05 May 2025 14:41:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 78261 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 78261@debbugs.gnu.org Cc: Benjamin , Gabriel Wicki , Ludovic =?utf-8?q?Court=C3=A8s?= , Maxim Cournoyer X-Debbugs-Original-To: guix-patches@gnu.org X-Debbugs-Original-Xcc: Gabriel Wicki , Ludovic =?utf-8?q?Court=C3=A8s?= , Maxim Cournoyer Received: via spool by submit@debbugs.gnu.org id=B.174645605810720 (code B ref -1); Mon, 05 May 2025 14:41:02 +0000 Received: (at submit) by debbugs.gnu.org; 5 May 2025 14:40:58 +0000 Received: from localhost ([127.0.0.1]:41411 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1uBx06-0002mn-6x for submit@debbugs.gnu.org; Mon, 05 May 2025 10:40:58 -0400 Received: from lists.gnu.org ([2001:470:142::17]:38348) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1uBx00-0002mS-8X for submit@debbugs.gnu.org; Mon, 05 May 2025 10:40:54 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uBwzo-0008Vh-1r for guix-patches@gnu.org; Mon, 05 May 2025 10:40:43 -0400 Received: from uvy1.uvy.fr ([54.37.64.75]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1uBwzl-00044i-Eu for guix-patches@gnu.org; Mon, 05 May 2025 10:40:39 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=20240405; bh=2bQNniDFqB6 0mnLG6fBzOMcJAFYdZiLymKoS4iqucbk=; h=date:subject:cc:to:from; d=uvy.fr; b=pmMHedVCtxSXyFK1YwhI6YhG3NLb7m0MPTmXZ9RG+NgTnUcEBXHGyb5vza yyxGVL9x9HuoORwQz/xxOLZqVX7N2cc8DRnbed0CYrrD0/7F/NQNWrJe6r7jRY8nQ/Hfcr ajjczzi4ifOf5ISk3UcMcaH25+/mOmv/pq3UQ2zpTsHOFZ5fqhXfBvIOBZGKZ+mD2btDXn f98ubL7/jocRiOphMJw7hYCX3/odYgBGN2wZj/l/9qtFhCExHb9IHLY09S5jeVKHihjzG3 JfPcf3qbIS1sNU/0bOCBIf0un2LW8EwYxbW7JQzPlw7MyBpwtmTWDUM3bWHpCxYCrXPTzC lhZQ== Received: by uvy1.uvy.fr (OpenSMTPD) with ESMTPSA id 6653c291 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 5 May 2025 14:40:29 +0000 (UTC) Date: Mon, 5 May 2025 16:40:23 +0200 Message-ID: X-Mailer: git-send-email 2.49.0 MIME-Version: 1.0 Received-SPF: permerror client-ip=54.37.64.75; envelope-from=benjamin@uvy.fr; helo=uvy1.uvy.fr X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001, T_SPF_PERMERROR=0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-to: Benjamin X-ACL-Warn: , Benjamin via Guix-patches X-Patchwork-Original-From: Benjamin via Guix-patches via From: Benjamin Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org X-getmail-retrieved-from-mailbox: Patches This commit adds initial_session section to greetd configuration file. This optional section describes the initial session, commonly referred to as "auto-login". * gnu/services/base.scm (greetd-terminal-configuration): Add initial-session-user and initial-session-command fields. * doc/guix.texi: Document the new fields. Change-Id: I84d6860bfe459f3cae07f5932920741fd5a60899 --- doc/guix.texi | 12 ++++++++++++ gnu/services/base.scm | 20 ++++++++++++++++---- 2 files changed, 28 insertions(+), 4 deletions(-) base-commit: 17119f1a35b7bff683f2f8f2b5db09b4634283e6 diff --git a/doc/guix.texi b/doc/guix.texi index 7f796c5fc94..b69298eb5fb 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -20844,6 +20844,18 @@ Base Services @code{greetd-wlgreet-sway-session}, @code{greetd-gtkgreet-sway-session} or a file-like object to use as greeter. +@item @code{initial-session-user} (default: @code{#f}) +The user to use for running the initial session. + +@code{initial-session-command} must also be defined. + +@item @code{initial-session-command} (default: @code{(greetd-agreety-session)}) +The command-line that greetd will run to start the initial session, e.g. +@code{(file-append sway "/bin/sway")}. +The initial session will be started exactly once when greetd is initially launched. + +@code{initial-session-user} must also be defined. + @end table @end deftp diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 650121be8f1..56cb5206af9 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -3941,7 +3941,10 @@ (define-record-type* (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") "")) @@ -3956,8 +3959,11 @@ (define (make-greetd-terminal-configuration-file config) (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))) - (mixed-text-file + (default-session-command (greetd-default-session-command config)) + (initial-session-user (greetd-initial-session-user config)) + (initial-session-command (greetd-initial-session-command config))) + (apply mixed-text-file + (cons* config-file-name "[general]\n" "source_profile = " (if source-profile? "true" "false") "\n" @@ -3966,7 +3972,13 @@ (define (make-greetd-terminal-configuration-file config) "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) + (list + "[initial_session]\n" + "user = " initial-session-user "\n" + "command = " initial-session-command "\n") + (list)))))) (define %greetd-file-systems (list (file-system