Skip to main content
Topic: [WIP] seatd support (elogind alternative) (Read 15898 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

Re: [WIP] seatd support (elogind alternative)

Reply #60
If you hold back elogind and were using pipewire-media-session, recent updates may have switched you to wireplumber. e.g pipewire-pulse for bluetooth audio. To switch to using wireplumber, first write a service to start it as a user service when logging in, then configure wireplumber to not use logind.

Code: [Select]
mkdir -p ~/.config/wireplumber/bluetooth.lua.d
cp /usr/share/wireplumber/bluetooth.lua.d/50-bluez-config.lua ~/.config/wireplumber/bluetooth.lua.d/

# set default true to false within lua file
["with-logind"] = false

This will allow you to start wireplumber without a logind on your system.

Ref: https://gitlab.freedesktop.org/pipewire/wireplumber/-/issues/208

Interesting. Tried pipewire and wireplumber out now. After that i dont have sound at all. pavucontrol and kde says there is no audio available.

Pipewire and Wireplumber arent started after system start either. I can start them manually in the terminal. but no sound too.


Forgot to start pipewire-pulse.

Re: [WIP] seatd support (elogind alternative)

Reply #61
I have switched to seatd on dinit, it works fine, i did not need any workaround for wireplumber, and there is no lingering logind process anywhere which is nice.


However i encountered 2 small nagging issues that are worth asking here:

-polkit doesn't work, probably for obvious reasons but is there any new hack to make it work?
-Turnstile does not start properly. /run/turnstiled is created but empty and no --services-dir arguments get passed to it's process. What can i look for if anything is missing in the env? It should work as the pair should complement each other, if i'm not wrong @konimex
My pam.d/system-login has pam_turnstile.so and pam_rundir.so after it.

Re: [WIP] seatd support (elogind alternative)

Reply #62
-Turnstile does not start properly. /run/turnstiled is created but empty and no --services-dir arguments get passed to it's process. What can i look for if anything is missing in the env? It should work as the pair should complement each other,
My pam.d/system-login has pam_turnstile.so and pam_rundir.so after it.
I believe you shouldn't need pam_rundir here at all since Turnstile already has its own way to manage $XDG_RUNTIME_DIR enabled via /etc/turnstile/turnstiled.conf.

Also, unfortunately I found that I wasn't able to continue using purely seatd due to the fact that libpulse and spice-vdagent depend on (e)logind. Is there anything I could do regarding that?


Re: [WIP] seatd support (elogind alternative)

Reply #64
Is there anything I could do regarding that?

No, it would take a fully functional elogind replacement, ie turnstile + seatd.
Seatd alone can't replace elogind.


Just read the readme
https://github.com/chimera-linux/turnstile
Well, by "purely seatd" I should have been more precise and said that I was in fact running it with Turnstile. Even so, the aforementioned packages depend specifically on elogind, so I wouldn't know how to rebuild those using Turnstile + seatd.

Re: [WIP] seatd support (elogind alternative)

Reply #65
I believe you shouldn't need pam_rundir here at all since Turnstile already has its own way to manage $XDG_RUNTIME_DIR enabled via /etc/turnstile/turnstiled.conf.

I've been trying to make greetd work without success, but after putting sddm back, lo and behold the user dinit process appeared and was working. Of course it's gone again after a reboot.
sddm seems to export everything by it's own, so the desktop session works without pam_rundir and even without turnstile. In a tty however i need pam_rundir for XDG_RUNTIME_DIR to be exported.
*also to note, the user doesn't get added to the seat group automatically, it maybe can hinder something but nothing so far changed after adding it.

LE: Okay nevermind, i got greetd to work, then i edited /etc/turnstile/turnstiled.conf and now it does work without pam_rundir, and the user dinit services are starting!
So pam_rundir (and also sddm in some cases) conflicts with turnstile.
tl:dr it worked exactly as you said and guess i'm on Wayland now :D

LE2: It still works with sddm and a X11 session, but it messes with the environment a bit.

LE3:
*another note: in dinit the (system) dbus service gets disabled, i didn't notice this at first since the user service by turnstile does most things, only gvfs and system_bus_socket didn't work in my case.

Re: [WIP] seatd support (elogind alternative)

Reply #66
Heh, i just realized, how in God's name is the system dbus service starting an instance of elogind-daemon?

I figured it out: delete this file: /usr/share/dbus-1/system-services/org.freedesktop.login1.service

Re: [WIP] seatd support (elogind alternative)

Reply #67
*One more note: for getting the power button to register on non supported DE's, under the default acpi script /etc/acpi/handler.sh, add the poweroff command at this argument:
Code: [Select]
...
            PBTN|PWRF)
                logger 'PowerButton pressed'
                poweroff
...

Re: [WIP] seatd support (elogind alternative)

Reply #68
I tried to use seatd instead of elogind but:

Code: [Select]
pacman -R elogind
checking dependencies...
error: failed to prepare transaction (could not satisfy dependencies)
:: removing elogind breaks dependency 'elogind' required by elogind-dinit
:: removing elogind breaks dependency 'elogind' required by gnome-desktop-common
:: removing elogind breaks dependency 'elogind' required by libpulse
:: removing elogind breaks dependency 'elogind' required by networkmanager
:: removing elogind breaks dependency 'elogind' required by polkit
:: removing elogind breaks dependency 'elogind' required by rtkit

No DE I use bspwm.

Re: [WIP] seatd support (elogind alternative)

Reply #69
In the first post it says you need to use -Rdd.
You can even leave it alone since realistically the only thing that can start it is the system instance of dbus.