Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
gui-libs/greetd
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Diskussionsforum
View previous topic :: View next topic  
Author Message
schmidicom
Veteran
Veteran


Joined: 09 Mar 2006
Posts: 1924
Location: Schweiz

PostPosted: Thu Feb 17, 2022 8:13 am    Post subject: gui-libs/greetd Reply with quote

Ich bin vor kurzem auf den Login/Display-Manager "gui-libs/greetd" aufmerksam geworden und habe diesen auch gleich mal zusammen mit "gui-apps/tuigreet" erfolgreich ausprobiert. Mein bisheriges Fazit dazu ist eigentlich recht positiv, klar die ebuilds haben an der einen oder anderen Stelle noch ihre Schwächen (bei "gui-libs/greetd" fehlt noch die PAM-Konfiguration und bei "gui-apps/tuigreet" wurde vergessen ein passendes Verzeichnis unter "/var/cache/" zu erstellen) aber alles Sachen die jetzt nicht allzu tragisch sind.
Alles in allem habe ich den Eindruck das "gui-libs/greetd" genau das ist was "x11-misc/lightdm" immer sein wollte aber nie ganz hinbekommen hat.

Hat sonst noch jemand diesen Login/Display-Manager ausprobiert? Wenn ja was ist eure Meinung dazu?

Hier noch die Sachen die ich selber machen musste um das bei mir zum laufen zu bringen:
/etc/pam.d/greetd:
#%PAM-1.0

auth            include         system-login
account         include         system-login
password        include         system-login
session         include         system-login

/etc/pam.d/greetd-greeter:
#%PAM-1.0

# Load environment from /etc/environment and ~/.pam_environment
auth            required pam_env.so

# Always let the greeter start without authentication
auth            required pam_permit.so

# No action required for account management
account         required pam_permit.so

# Can't change password
password        required pam_deny.so

# Setup session
session         required pam_unix.so
session         optional pam_systemd.so class=greeter

/etc/greetd/config.toml:
[terminal]
# The VT to run the greeter on. Can be "next", "current" or a number
# designating the VT.
vt = 7

# The default session, also known as the greeter.
[default_session]

# `agreety` is the bundled agetty/login-lookalike. You can replace `$SHELL`
# with whatever you want started, such as `sway`.
#command = "agreety --cmd $SHELL"
command = "/usr/bin/tuigreet --time --remember --remember-session --asterisks --power-shutdown 'systemctl poweroff' --power-reboot 'systemctl reboot'"

# The user to run the command as. The privileges this user must have depends
# on the greeter. A graphical greeter may for example require the user to be
# in the `video` group.
user = "greetd"

Cache-Verzeichnis für TUIGreet erstellen:
mkdir /var/cache/tuigreet
chown greetd:greetd /var/cache/tuigreet
Back to top
View user's profile Send private message
schmidicom
Veteran
Veteran


Joined: 09 Mar 2006
Posts: 1924
Location: Schweiz

PostPosted: Sat Feb 19, 2022 12:31 pm    Post subject: Reply with quote

Da sich greetd offenbar auf moderne Desktops konzentriert die alles was sie brauchen selber mitbringen startet dieser selber keinen X11-Server mehr. Wenn man drüber also einen X11 basierten Desktop starten möchte der damit nicht klar kommt muss man sich selber darum kümmern.

ACHTUNG:
Das gleich folgende Beispiel sollte nicht verwendet werden und ich lasse es nur wegen dem Diskussionsverlauf drin!
Weiter unten gibt es eine bessere Variante.


Hier mal meine Variante dazu (ohne Garantie das es funktioniert oder das dies die beste Lösung ist):
/etc/systemd/system/xorg.socket:
[Unit]
Description=X11 Server Socket

[Socket]
ListenStream=/tmp/.X11-unix/X0

[Install]
WantedBy=sockets.target

/etc/systemd/system/xorg.service:
[Unit]
Description=Xorg
Documentation=man:Xorg(1)
Requires=xorg.socket
Afer=xorg.socket

[Service]
ExecStart=/usr/bin/Xorg :0 -nolisten tcp -noreset -verbose 1
SuccessExitStatus=0 1

/etc/env.d/99xorg_display:
DISPLAY=:0


Last edited by schmidicom on Thu Apr 14, 2022 7:23 am; edited 1 time in total
Back to top
View user's profile Send private message
mike155
Advocate
Advocate


Joined: 17 Sep 2010
Posts: 4438
Location: Frankfurt, Germany

PostPosted: Sat Feb 19, 2022 4:50 pm    Post subject: Reply with quote

Danke für Deinen interessanten Beitrag! Ich kannte greetd noch nicht.

Laut Homepage scheint das ein interessantes Projekt zu sein.

Mit gefällt:
  1. Der "minimal and flexible"-Ansatz
  2. Die Programmiersprache Rust
  3. Der Login-Manager-Daemon ist in verschiedenen Ausführungen verfügbar: textbasiert (console), fbdev, X11, Wayland. Dadurch kann man genau die Version installieren, die man benötigt.
Back to top
View user's profile Send private message
schmidicom
Veteran
Veteran


Joined: 09 Mar 2006
Posts: 1924
Location: Schweiz

PostPosted: Sun Feb 20, 2022 9:44 am    Post subject: Reply with quote

Eine Schwäche ist mir beim greetd allerdings aufgefallen.
Der greeter sagt nach erfolgreicher Authentifizierung dem greetd welches Kommando ausgeführt werden soll und dieses Kommando darf aktuell nur aus einem Befehl bestehen, kleines Beispiel dazu:
Code:
/usr/lib64/libexec/plasma-dbus-run-session-if-needed /usr/bin/startplasma-wayland

Funktioniert nicht weil nur der erste Teil, also "/usr/lib64/libexec/plasma-dbus-run-session-if-needed", ausgeführt wird.

Ich hoffe das der Entwickler von greetd das noch irgendwann gefixt bekommt.
Back to top
View user's profile Send private message
mike155
Advocate
Advocate


Joined: 17 Sep 2010
Posts: 4438
Location: Frankfurt, Germany

PostPosted: Sun Feb 27, 2022 12:36 pm    Post subject: Reply with quote

Es gibt auch einen Thread im englischsprachigen Forum: https://forums.gentoo.org/viewtopic-t-1145682.html
Back to top
View user's profile Send private message
schmidicom
Veteran
Veteran


Joined: 09 Mar 2006
Posts: 1924
Location: Schweiz

PostPosted: Wed Apr 13, 2022 10:08 am    Post subject: Reply with quote

Kleine Ergänzung zum Thema "Desktop mit X11".

Mein Beispiel von weiter oben ist keine gute Idee...
Mal davon abgesehen das ein X11 mit root generell etwas ist das man vermeiden sollte, funktionierte bei mir deswegen das Bluetooth nicht mehr richtig (Geräte konnten nicht verbunden werden, vermutlich wegen Session-Management).

Deswegen und wegen dem bereits weiter oben erwähnten "Problem" mit dem ausführen von mehreren Kommandos hintereinander bin ich jetzt einen anderen Weg gegangen. Und das sieht folgendermassen aus:
/etc/tuigreet/:
insgesamt 12K
drwxr-xr-x   4 root root   37 17. Feb 15:03 .
drwxr-xr-x 127 root root 8,0K 13. Apr 11:41 ..
drwxr-xr-x   2 root root   30 11. Apr 09:43 scripts
drwxr-xr-x   2 root root   77 11. Apr 09:44 sessions
/etc/tuigreet/scripts/:
insgesamt 4,0K
drwxr-xr-x 2 root root 30 11. Apr 09:43 .
drwxr-xr-x 4 root root 37 17. Feb 15:03 ..
-rwxr-xr-x 1 root root 51 11. Apr 09:43 startx_plasma.sh
/etc/tuigreet/sessions/:
insgesamt 12K
drwxr-xr-x 2 root root  77 11. Apr 09:44 .
drwxr-xr-x 4 root root  37 17. Feb 15:03 ..
-rw-r--r-- 1 root root  80 11. Apr 09:44 fish.desktop
-rw-r--r-- 1 root root 131 11. Apr 09:44 plasma.desktop
-rw-r--r-- 1 root root 111 11. Apr 09:44 plasmawayland.desktop

/etc/tuigreet/scripts/startx_plasma.sh:
#!/bin/sh
/usr/bin/startx /usr/bin/startplasma-x11
/etc/tuigreet/sessions/fish.desktop:
[Desktop Entry]
Type=Application
Exec=/bin/fish
Name=Friendly Interactive SHell
/etc/tuigreet/sessions/plasma.desktop:
[Desktop Entry]
Type=XSession
Exec=/etc/tuigreet/scripts/startx_plasma.sh
DesktopNames=KDE
Name=Plasma (X11)
Comment=Plasma by KDE
/etc/tuigreet/sessions/plasmawayland.desktop:
[Desktop Entry]
Exec=/usr/bin/startplasma-wayland
DesktopNames=KDE
Name=Plasma (Wayland)
Comment=Plasma by KDE
/etc/greetd/config.toml:
[terminal]
# The VT to run the greeter on. Can be "next", "current" or a number
# designating the VT.
vt = 7

# The default session, also known as the greeter.
[default_session]

# `agreety` is the bundled agetty/login-lookalike. You can replace `$SHELL`
# with whatever you want started, such as `sway`.
#command = "agreety --cmd $SHELL"
command = "/usr/bin/tuigreet --sessions /etc/tuigreet/sessions --time --remember --remember-session --asterisks --power-shutdown 'systemctl poweroff' --power-reboot 'systemctl reboot'"

# The user to run the command as. The privileges this user must have depends
# on the greeter. A graphical greeter may for example require the user to be
# in the `video` group.
user = "greetd"

So kann ich nun im tuigreet zwischen drei Sessions auswählen und alle drei starten fehlerfrei. Auch wird beim Plasma mit X11 der Xorg nicht mehr als root gestartet was für die Sicherheit auch besser sein sollte als es das beispielsweise beim SDDM der Fall wäre.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Diskussionsforum All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum