From patchwork Sun Feb 2 22:54:53 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: muradm X-Patchwork-Id: 38188 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 A318F27BBEA; Sun, 2 Feb 2025 22:56:10 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-7.6 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_BLOCKED, RCVD_IN_VALIDITY_CERTIFIED,RCVD_IN_VALIDITY_RPBL,RCVD_IN_VALIDITY_SAFE, SPF_HELO_PASS autolearn=ham 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 240D327BBE9 for ; Sun, 2 Feb 2025 22:56:09 +0000 (GMT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1teisl-0006jd-Jm; Sun, 02 Feb 2025 17:56:03 -0500 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 1teisk-0006iz-Kz for guix-patches@gnu.org; Sun, 02 Feb 2025 17:56:02 -0500 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 1teisk-0000jb-CJ; Sun, 02 Feb 2025 17:56:02 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=MIME-Version:References:In-Reply-To:Date:From:To:Subject; bh=T/3ZIY+TleJIkSq/xK598uVxn6gcomm+MOdM1nX+Lwg=; b=sAOt0+gi1qaThS0kAegtWRGKGDr0NP7nD3kThlV0YANtOeFFl8oqxwVRfzfNxRzZ6Ifp1jeNOJq89R6a9KqCJCGEK94k/tlOlHDree7hQag18VSSNw5AATJcudDAXwHQieeTOiyC3zJChCj7Atc1e9rJ2J7O6ERKOfIT+mcEpJOfIE+kvOp2XAyF59Y7OKqSgFJdinO0E8ywKn3fn6oAvvCZ27HvGfexXr1MpFHI7Ah4i6KekLl6LKER8JLvTna1DROk0Rgr/VdQz2Yslv/m8y1lOXoTrQQFWLx3/zAsBq2E4yltITHlPjB8WfH0cP2T8UYtap7VdpWGUWpCb77eHw==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1teisk-0003Pi-6v; Sun, 02 Feb 2025 17:56:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#75270] [PATCH v5 3/3] services: greetd: Add new gtkgreet greeter. Resent-From: muradm Original-Sender: "Debbugs-submit" Resent-CC: ludo@gnu.org, maxim.cournoyer@gmail.com, guix-patches@gnu.org Resent-Date: Sun, 02 Feb 2025 22:56:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 75270 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 75270@debbugs.gnu.org, Maxim Cournoyer Cc: Ludovic =?utf-8?q?Court=C3=A8s?= , Maxim Cournoyer X-Debbugs-Original-Xcc: Ludovic =?utf-8?q?Court=C3=A8s?= , Maxim Cournoyer Received: via spool by 75270-submit@debbugs.gnu.org id=B75270.173853690412698 (code B ref 75270); Sun, 02 Feb 2025 22:56:02 +0000 Received: (at 75270) by debbugs.gnu.org; 2 Feb 2025 22:55:04 +0000 Received: from localhost ([127.0.0.1]:36632 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1teirn-0003IU-8J for submit@debbugs.gnu.org; Sun, 02 Feb 2025 17:55:04 -0500 Received: from nomad-cl1.muradm.net ([139.162.159.157]:59814) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1teirk-0003Ha-JE for 75270@debbugs.gnu.org; Sun, 02 Feb 2025 17:55:01 -0500 Received: from localhost ([127.0.0.1]:37848) by nomad-cl1.muradm.net with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98) (envelope-from ) id 1teirH-000000004ll-1AXv; Sun, 02 Feb 2025 22:54:31 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=muradm.net; s=mail; h=Content-Transfer-Encoding:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:To:From:Sender:Reply-To:Cc:Content-Type:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=T/3ZIY+TleJIkSq/xK598uVxn6gcomm+MOdM1nX+Lwg=; b=FZhMyK3+gj4/SS4BRO4bQAv4e3 dEBwIy+r/n45rPHeTs38se3xBubqe45f5XZzYU5lz+eGSK4E0LuK6zYwkTLv6S4apVN8aYIi3e2CY eBW6yPQo9oZYF8yBsMAYcQVoRtAVbojAY0c1iaG7SR2sHdqykFIcw7odG/Hchw3tl+4/z/ADebAvL DLxinROnnzzSa1oLpayEZL3QDB+HghqZLTRaFdjxLBBd/0dYDCXRk5S5D7/VnaWT5+MsRYihgnWX4 dY/F+HZeoPFXsNFtx+XR5vRzLkhEEyfLS1KLvYIZyjxgVX6akJzDvIU7vG41VjVwLdAeUdfhzHnDr faHeWQ1SDMATJkzhxebqXsBZoyVGwLvzf4m6Qz6NoIjF1XNJpBZR4BO3u7LlSSYr5glzMWGZyQkKW Zmw/gtCZTjkOwjrMtLfXRHQ+vOgOA3b8jrD4IGbMagum7t84+tJyagnau4LWCSNtJZcEBqAhjBuxt EdsL5iRz+ZRISmo72F34GS06; Received: from muradm by localhost with local (Exim 4.98) (envelope-from ) id 1teire-000000007X9-1R6F; Mon, 03 Feb 2025 01:54:54 +0300 From: muradm Date: Mon, 3 Feb 2025 01:54:53 +0300 Message-ID: <745d6966766cbe382bf9a07a19f5f33329ac17af.1738536455.git.mail@muradm.net> X-Mailer: git-send-email 2.47.1 In-Reply-To: References: MIME-Version: 1.0 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: , 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 * gnu/services/base.scm (): New record, represents `gtkgreet` greeter session configuration. * doc/guix.texi (Base Services): Document new `gtkgreet` greeter. Change-Id: I34a5418c2ea948ac81fcb9b46aedd662863be31b --- doc/guix.texi | 45 +++++++++++++++++++++++++++++++++++++++++-- gnu/services/base.scm | 38 ++++++++++++++++++++++++++++++++++++ 2 files changed, 81 insertions(+), 2 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index c60ad4f216b..5ea9b457109 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -20594,8 +20594,8 @@ Base Services The user to use for running the greeter. @item @code{default-session-command} (default: @code{(greetd-agreety-session)}) -Can be either @code{greetd-agreety-session}, @code{greetd-wlgreet-sway-session} or -@code{gexp->script} like object to use as greeter. +Can be either @code{greetd-agreety-session}, @code{greetd-wlgreet-sway-session}, +@code{greetd-gtkgreet-sway-session} or file-like object to use as greeter. @end table @end deftp @@ -20718,6 +20718,47 @@ Base Services @end lisp @end deftp +@deftp {Data Type} greetd-gtkgreet-sway-session +Configuration record for the gtkgreet greetd greeter. Can be used as +following: + +@lisp + (greetd-configuration + ;; The graphical greeter requires additional groups membership. + (greeter-supplementary-groups (list "video" "input" "seat")) + (terminals + (list (greetd-terminal-configuration + (terminal-vt "1") + (terminal-switch #t) + (default-session-command + (greetd-gtkgreet-sway-session + (command + (greetd-user-session + ;; Optionally signal to .bashrc that we want wayland compositor. + (xdg-session-type "wayland"))))))))) +@end lisp + +@table @asis +@item @code{sway} (default: @code{sway}) +The package providing the @command{sway} and @command{swaymsg} commands. + +@item @code{sway-configuration} (default: @code{#f}) +Extra file-like configuration for sway to be included before executing +the greeter. + +@item @code{gtkgreet} (default: @code{gtkgreet}) +The package with @command{gtkgreet} command. + +@item @code{gtkgreet-style} (default: @code{#f}) +Extra file-like CSS stylesheet to customize the GTK look. + +@item @code{command} (default: @code{(greetd-user-session)}) +Command to be started by @command{gtkgreet} on successful login, an +instance of @code{greetd-user-session}. + +@end table +@end deftp + @node Scheduled Job Execution @subsection Scheduled Job Execution diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 926fc973c8b..691270f6bec 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -279,6 +279,7 @@ (define-module (gnu services base) greetd-wlgreet-session ; deprecated greetd-wlgreet-configuration greetd-wlgreet-sway-session + greetd-gtkgreet-sway-session %base-services)) @@ -3708,6 +3709,43 @@ (define-gexp-compiler (greetd-wlgreet-sway-session-compiler sway (make-greetd-wlgreet-sway-session-sway-config s)))))) +(define-record-type* + greetd-gtkgreet-sway-session make-greetd-gtkgreet-sway-session + greetd-gtkgreet-sway-session? + (sway greetd-gtkgreet-sway-session-sway (default sway)) + (sway-configuration greetd-gtkgreet-sway-session-sway-configuration + (default #f)) + (gtkgreet greetd-gtkgreet-sway-session-gtkgreet (default gtkgreet)) + (gtkgreet-style greetd-gtkgreet-sway-session-gtkgreet-style (default #f)) + (command greetd-gtkgreet-sway-session-command (default (greetd-user-session)))) + +(define make-greetd-gtkgreet-sway-session-sway-config + (match-lambda + (($ + sway sway-config gtkgreet gtkgreet-style command) + (let ((gtkgreet-bin (file-append gtkgreet "/bin/gtkgreet")) + (swaymsg-bin (file-append sway "/bin/swaymsg"))) + (mixed-text-file + "gtkgreet-sway-config" + (if sway-config "include " "") + (if sway-config sway-config "") + (if sway-config "\n" "") + "xwayland disable\n" + "exec \"" gtkgreet-bin " -l" + (if gtkgreet-style " -s " "") + (if gtkgreet-style gtkgreet-style "") + " -c " command "; " swaymsg-bin " exit\"\n"))))) + +(define-gexp-compiler (greetd-gtkgreet-sway-session-compiler + (session ) + system target) + (match-record session + (sway) + (lower-object + (make-greetd-sway-greeter-command + sway + (make-greetd-gtkgreet-sway-session-sway-config session))))) + (define-record-type* greetd-terminal-configuration make-greetd-terminal-configuration greetd-terminal-configuration?