openSUSE / openSUSEway

dotfiles for Sway on openSUSE
MIT License
82 stars 17 forks source link

greetd doesn't work with standalone install #37

Closed denisok closed 3 years ago

denisok commented 3 years ago

installing greetd without openSUSEway wouldn't work for the login: command = "agreety --cmd $SHELL" here $SHELL is undefined and thus ppl wouldn't be able to login.

We need to define something default in config file for the user, so it could at least login to the shell.

mcepl commented 3 years ago

Just to emphasize that it is actually a sway bug not the openSUSEway one.

denisok commented 3 years ago

greetd default tuning that don't work out of the box then :)

mcepl commented 3 years ago

BTW, https://man.sr.ht/~kennylevinsen/greetd/ is just at least misleading (if not completely wrong):

Open /etc/greetd/config.toml. The greeter should be set to agreety --cmd $SHELL, which logs you into a normal terminal session. Change this to agreety --cmd sway if you want it to start sway.

Also, couple of lines below (when setting gtkgreet):

Edit /etc/greetd/config.toml to set the new greeter as the default session. If using cage:

What? What's cage? Do I use cage? Should I use it? One cannot use undefined terms in an explanation.

And I can go on. When I run zypper info cage, it tells me that it is A Wayland Kiosk. WHAT? How is that supposed to help me to understand? Should I use it? What it is?

denisok commented 3 years ago

btw @mcepl how you fixed it for yourself? any hints for default agreety config?

mcepl commented 3 years ago

I haven't. Went back to gdm for now. Trying to understand right now what's going on, and the quality of documentation makes me cry.

denisok commented 3 years ago

:) if you use sway check: https://github.com/openSUSE/openSUSEway/tree/master/greetd

this is opensource - they would get contributions for sure.

mcepl commented 3 years ago

:) if you use sway check: https://github.com/openSUSE/openSUSEway/tree/master/greetd

OK, that makes at least partially sense. Only, what’s /etc/greetd/environments? It is not anything like /etc/environment (I don’t see any variables)?

this is opensource - they would get contributions for sure.

I have to understand the thing first, before I can contribute.

denisok commented 3 years ago

:) if you use sway check: https://github.com/openSUSE/openSUSEway/tree/master/greetd

OK, that makes at least partially sense. Only, what’s /etc/greetd/environments? It is not anything like /etc/environment (I don’t see any variables)?

that is for gtkgreet to select session when you login. sway-run is here: https://github.com/openSUSE/openSUSEway/blob/master/sway/sway-run.sh

mcepl commented 3 years ago

Hmm, this doesn't look good. Yes, I have a window behind the screen, so hopefully at least these images make sense:

Screenshot from VID - 4 Screenshot from VID_20210325_120838 mp4

Looking at seatd documentation I cannot than wonder ... why we as Linux distro packagers need to be compatible with FreeBSD? And why should packages of the distribution based on systemd (whether we like it or not) care about compatibility with non-systemd systems? Couldn't we just use (e)logind directly?

denisok commented 3 years ago

I have libseat errors as well, but it works anyway:

Mar 24 14:26:00 denlen sway[4259]: 2021-03-24 14:26:00 - [main.c:521] Missing a required Wayland interface
Mar 24 14:26:00 denlen sway[4233]: 00:00:00.003 [ERROR] [backend/session/libseat.c:102] Unable to create seat: Function not implemented
Mar 24 14:26:00 denlen sway[4233]: 00:00:00.003 [ERROR] [libseat] [libseat/libseat.c:73] No backend was able to open a seat
Mar 24 14:26:00 denlen sway[4233]: 00:00:00.003 [ERROR] [libseat] [libseat/backend/seatd.c:78] Could not connect to socket /run/seatd.sock: No such file or directory
Mar 24 14:26:00 denlen systemd[1]: Started Session 2 of user dkondratenko.

I don't have other issues. Only one similar error:

waybar[4332]: gtk-layer-shell v0.6.0 may not work on GTK v3.24.27. If you experience crashes, check https://github.com/wmww/gtk-layer-shell/blob/master/compatibility.md

but that different.

denisok commented 3 years ago

check other logs, maybe there is something with start script or something....

mcepl commented 3 years ago

So, is it an error in gtkgreeter? Wouldn't I be served better by wlgreeter?

kennylevinsen commented 3 years ago

installing greetd without openSUSEway wouldn't work for the login: command = "agreety --cmd $SHELL" here $SHELL is undefined and thus ppl wouldn't be able to login.

If this example is sourced from greetd, could you open an issue over on https://todo.sr.ht/~kennylevinsen/greetd? Thanks!

BTW, https://man.sr.ht/~kennylevinsen/greetd/ is just at least misleading (if not completely wrong): [...] What? What's cage? Do I use cage? Should I use it? One cannot use undefined terms in an explanation.

cage is a simple Wayland compositor. Using sway and wayfire are also popular options.

Gtk applications can't run on their own, and as the first point int he FAQ states, the rule of thumb is "if it runs on a TTY, it runs in greetd".

Looking at seatd documentation I cannot than wonder ... why we as Linux distro packagers need to be compatible with FreeBSD? And why should packages of the distribution based on systemd (whether we like it or not) care about compatibility with non-systemd systems? Couldn't we just use (e)logind directly?

To be good, inclusive FOSS community members.

However, counter-question: If you want to use systemd-logind, why are you trying to use seatd? Just use the libseat logind backend (I suspect you compiled it with seatd support, not logind support), or wlroots' own logind backend.

If you want to use seatd, you'll need to set up the daemon, but there's no need for having both seatd and logind running.

waybar[4332]: gtk-layer-shell v0.6.0 may not work on GTK v3.24.27. If you experience crashes, check https://github.com/wmww/gtk-layer-shell/blob/master/compatibility.md

This is from waybar, but it's just a warning that the patch version of Gtk is one newer than what was tested. It's probably fine, but gtk-layer-shell is a little fragile.

denisok commented 3 years ago

So, is it an error in gtkgreeter? Wouldn't I be served better by wlgreeter?

I use gtkgreet it works fine, please attach full logs to investigate, you probably have another issue, like pam one ;) see #33

denisok commented 3 years ago

However, counter-question: If you want to use systemd-logind, why are you trying to use seatd? Just use the libseat logind backend (I suspect you compiled it with seatd support, not logind support), or wlroots' own logind backend.

If you want to use seatd, you'll need to set up the daemon, but there's no need for having both seatd and logind running .

this is a good point, I will check it. JFYI our spec is here: https://build.opensuse.org/package/view_file/X11:Wayland/greetd/greetd.spec?expand=1 we build it with default options.

@kennylevinsen as you stopped by, could you check #33 . For pam I don't have a solution. As for config there - I was trying to add build option for the greetd to add vendor dir as well, but so far stuck with Rust knowledge, will do it eventually, but maybe you have some other opinion.

kennylevinsen commented 3 years ago

this is a good point, I will check it. JFYI our spec is here: https://build.opensuse.org/package/view_file/X11:Wayland/greetd/greetd.spec?expand=1 we build it with default options.

libseat/seatd use comes from a wlroots-based Wayland compositor being started, not greetd, so that's where you'd have to look.

kennylevinsen commented 3 years ago

Just took a look at the other relevant specs. Notes:

mcepl commented 3 years ago

If this example is sourced from greetd, could you open an issue over on https://todo.sr.ht/~kennylevinsen/greetd? Thanks!

It is actually your own config.toml https://todo.sr.ht/~kennylevinsen/greetd/21

cage is a simple Wayland compositor. Using sway and wayfire are also popular options.

Then either don't mention it in the first example, or explain it beforehand.

denisok commented 3 years ago
* libseat is compiled with seatd support, and no logind support (https://build.opensuse.org/package/view_file/X11:Wayland/seatd/seatd.spec?expand=1). This is why libseat fails, and wlroots' own logind backend is used instead. To enable the logind backend, pass `-Dlogind=enabled` to meson. See `meson_options.txt` for the available compile-time options.

thanks for the hint, submitted new package with logind enabled: https://build.opensuse.org/request/show/881388

kennylevinsen commented 3 years ago

Then either don't mention it in the first example, or explain it beforehand.

It's explained one line above, in step 3 (what you quoted was step 4):

Install a Wayland compositor, such as sway or cage. For the full experience, a compositor with wlr-layer-shell-unstable support is required.

A sway example also immediately follows the cage example.

Improvements are always accepted though. Feel free to send patches! It should also be noted that this is the wiki, for e.g. example configurations and such. The documentation is the manpages.

denisok commented 3 years ago

fixed downstream with https://build.opensuse.org/request/show/893771