View previous topic :: View next topic |
Author |
Message |
schmidicom Veteran
Joined: 09 Mar 2006 Posts: 1975 Location: Schweiz
|
Posted: Thu Feb 17, 2022 8:13 am Post subject: gui-libs/greetd |
|
|
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 |
|
|
schmidicom Veteran
Joined: 09 Mar 2006 Posts: 1975 Location: Schweiz
|
Posted: Sat Feb 19, 2022 12:31 pm Post subject: |
|
|
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 |
|
|
mike155 Advocate
Joined: 17 Sep 2010 Posts: 4438 Location: Frankfurt, Germany
|
Posted: Sat Feb 19, 2022 4:50 pm Post subject: |
|
|
Danke für Deinen interessanten Beitrag! Ich kannte greetd noch nicht.
Laut Homepage scheint das ein interessantes Projekt zu sein.
Mit gefällt:
- Der "minimal and flexible"-Ansatz
- Die Programmiersprache Rust
- 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 |
|
|
schmidicom Veteran
Joined: 09 Mar 2006 Posts: 1975 Location: Schweiz
|
Posted: Sun Feb 20, 2022 9:44 am Post subject: |
|
|
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 |
|
|
mike155 Advocate
Joined: 17 Sep 2010 Posts: 4438 Location: Frankfurt, Germany
|
|
Back to top |
|
|
schmidicom Veteran
Joined: 09 Mar 2006 Posts: 1975 Location: Schweiz
|
Posted: Wed Apr 13, 2022 10:08 am Post subject: |
|
|
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 |
|
|
|