Subject: Fwd: [bug#75270] [PATCH 1/3] services: greetd: Improve greeter configurations.

From: Nicolas Graves <[email-masked]>
Date: Sat, 04 Jan 2025 17:14:32 +0100

-------------------- Start of forwarded message --------------------
From: muradm <[email-masked]>
To: Nicolas Graves <[email-masked]>
Subject: Re: [bug#75270] [PATCH 1/3] services: greetd: Improve greeter
 configurations.
Date: Sat, 04 Jan 2025 16:49:09 +0300

Nicolas Graves <[email-masked]> writes:

> On 2025-01-04 11:57, Nicolas Graves wrote:
>
>>> 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).
>>
>> IIUC, it's because of PAM mount execution order that this 
>> happens?  So
>> there's also no need for that for people that don't use PAM 
>> mount.
>> Maybe completing the comment as "/run/user/<greeter-user-uid> 
>> won't
>> exist yet due to PAM mount execution order" comment would make 
>> that
>> clearer?
>>
>> Is the logfile here the one logging everything Sway?  Could you 
>> make the
>> logfile configurable or is that not possible due to 
>> unguaranteed dir
>> existence due to PAM mount?  We are making an extra effort to 
>> locate
>> logfiles in the same dir in RDE. (I could also try and make a 
>> symlink a
>> posteriori to the right dir).
>
> Actually, I'm not sure I understand properly.
>
> I use agreety, then sway through ~/.profile because default is 
> bash
> --login.

This is most straightforward and IMHO correct way to start 
whatever user wants.

> It works OK, because the user (not greetd) launches Sway.
> Should I care about your changes ?

No, you should not care about stuff happening in script in 
`make-greetd-sway-greeter-command`. User session is started by 
scripts within `make-greetd-user-session-command` and 
`make-greetd-xdg-user-session-command`. Where user session command 
is specified by `command`, `command-args` and `extra-env` in 
`<greetd-user-session>`.

Most notable impact of this change, as noted in cover letter is 
that user session now factored out. Now you are able to pass 
instance of `<greetd-user-session>` to any properly defined 
greeter, which are agreety, wlgreet and gtkgreet as of this 
change.

I'm not RDE or guix home user, but I suppose that their entry 
point should be an instance of `<greetd-user-session>` or 
combination of greeter and `<greetd-user-session>`.

> If I want to skip this bash step and make greetd launch sway 
> directly,
> then I would need this script, otherwise, it is not necessary, 
> am I
> right?  Is there any upside / reason I should switch?

Technically, you may set `command`, `command-args` and `extra-env` 
to sway, its required arguments and if necessary environment 
variables of `<greetd-user-session>` instance, carefully 
considering `xdg-env?` and `xdg-session-type`. But, as I mentioned 
above, IMHO and from my experience, starting from 
.bashrc/.profile/whatever from user home and editable by user is 
more correct and straightforward.
-------------------- End of forwarded message --------------------

-- 
Best regards,
Nicolas Graves