unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
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 --]

  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).