From: muradm <mail@muradm.net>
To: Nicolas Graves <ngraves@ngraves.fr>
Cc: "Ludovic Courtès" <ludo@gnu.org>,
75270@debbugs.gnu.org,
"Maxim Cournoyer" <maxim.cournoyer@gmail.com>
Subject: [bug#75270] [PATCH 1/3] services: greetd: Improve greeter configurations.
Date: Fri, 03 Jan 2025 20:08:42 +0300 [thread overview]
Message-ID: <87ed1j6d0l.fsf@muradm.net> (raw)
In-Reply-To: <87pll4owui.fsf@ngraves.fr> (Nicolas Graves's message of "Fri, 03 Jan 2025 14:23:01 +0100")
[-- Attachment #1: Type: text/plain, Size: 3044 bytes --]
Nicolas Graves <ngraves@ngraves.fr> writes:
> On 2025-01-02 01:53, muradm wrote:
>
>> This improvement focuses on providing common user session
>> scripts
>> for use by multiple greeters. It also fixes incorrect use of
>> `XDG_RUNTIME_DIR` for `wlgreet`. `wlgreet` requires compositor
>> to
>> run. We provide common sway based greeter script, which can be
>> shared by other graphical greeters.
>
> [...]
>
>> +(define (make-greetd-sway-greeter-command sway sway-config)
>> + (let ((sway-bin (file-append sway "/bin/sway")))
>> + (program-file
>> + "greeter-sway-command"
>> + #~(begin
>> + (let* ((username (getenv "USER"))
>> + (useruid (passwd:uid (getpwuid username)))
>> + (useruid (number->string useruid))
>> + ;; /run/user/<greeter-user-uid> won't exist
>> yet
>> + ;; this will contain WAYLAND_DISPLAY socket
>> file
>> + ;; and log-file below
>> + (user-xdg-runtime-dir "/tmp/greeter-xdg-rt")
>> + (log-file (string-append (number->string
>> (getpid)) ".log"))
>> + (log-file (string-append user-xdg-runtime-dir
>> "/"
>> log-file)))
>
> Could you explain why this is necessary? If I'm not mistaken,
> we didn't
> used a special runtime dir in RDE, and it worked OK.
>
When you start sway, it has to put WAYLAND_DISPLAY somewhere. By
default it is put to `/run/user/<uid>`. However greeter is special
limited user which is used to run without logging in. Because of
that, `/run/user/<uid>` is not created by PAM mount. For special
purpose we can use any XDG_RUNTIME_DIR. Sway does not support
specifying location of WAYLAND_DISPLAY as far as I remember (I was
opening an issue about it long ago, still was not resolved).
>> + (mkdir user-xdg-runtime-dir #o700)
>> + (setenv "XDG_RUNTIME_DIR" user-xdg-runtime-dir)
>> + (sleep 1) ;; give time to elogind or seatd
>> + (dup2
>> + (open-fdes
>> + log-file
>> + (logior O_CREAT O_WRONLY O_APPEND)
>> + #o640)
>> + 1)
>> + (dup2 1 2)
>
> Maybe also here a tiny comment on why this is better than the
> previous
> fileno approach.
>
dup2 takes file descriptor, open-fdes provides in one go.
Otherwise technically it does not matter how you acquire file
descriptor. This script I created long ago for greeters. This is
my recent version.
>> + (execl #$sway-bin #$sway-bin "-d" "-c"
>> #$sway-config))))))
>
> Also, what about the XDG_CURRENT_DESKTOP setting? Should it not
> be added
> with xdg-env too?
You don't need it, to run single sway process with single greeter
application. Keep in mind that there is an "environment" to run
greeter, and another "envrionment" for user after the login. They
do not overlap. If you need XDG_CURRENT_DESKTOP for user after
login, it could be set by window manager, desktop environment,
manually in profile or manually in `extra-env` of
`greetd-user-session`.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]
next prev parent reply other threads:[~2025-01-03 17:09 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <87jzbar8oa.fsf@muradm.net>
2025-01-01 22:47 ` [bug#75270] [PATCH 0/3] services: greetd: Improve greeter configurations muradm
2025-01-01 22:53 ` [bug#75270] [PATCH 1/3] " muradm
2025-01-03 13:23 ` Nicolas Graves via Guix-patches via
2025-01-03 17:08 ` muradm [this message]
2025-01-04 10:57 ` Nicolas Graves via Guix-patches via
2025-01-04 13:36 ` muradm
2025-01-01 22:53 ` [bug#75270] [PATCH 2/3] gnu: Add gtkgreet muradm
2025-01-01 22:53 ` [bug#75270] [PATCH 3/3] services: greetd: Add new gtkgreet greeter muradm
2025-01-03 11:34 ` [bug#75270] [PATCH 0/3] services: greetd: Improve greeter configurations muradm
2025-01-04 16:14 ` [bug#75270] Fwd: [bug#75270] [PATCH 1/3] " Nicolas Graves via Guix-patches via
2025-01-04 16:58 ` [bug#75270] [PATCH v2 0/3] " muradm
2025-01-04 16:58 ` [bug#75270] [PATCH v2 1/3] " muradm
2025-01-04 16:58 ` [bug#75270] [PATCH v2 2/3] gnu: Add gtkgreet muradm
2025-01-04 16:58 ` [bug#75270] [PATCH v2 3/3] services: greetd: Add new gtkgreet greeter muradm
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87ed1j6d0l.fsf@muradm.net \
--to=mail@muradm.net \
--cc=75270@debbugs.gnu.org \
--cc=ludo@gnu.org \
--cc=maxim.cournoyer@gmail.com \
--cc=ngraves@ngraves.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).