Autologin via Systemd

Vor geraumer Zeit habe ich meine verwendete Desktopumgebung komplett über den Haufen geschmissen und bin auf Openbox mit Cairo-Dock und fbpanel gewechselt. Da dadurch mehr oder weniger zwangsweise auch der Login Manager über Bord ging, habe ich mich nach einer brauchbaren Alternative umgesehen. Da mein Notebook aber lediglich von mir verwendet wird, besteht eigentlich kein Bedarf für einen permanent im Hintergrund laufenden und Ressourcen schluckenden Daemon. Daher habe ich mich nach ein wenig Recherche dazu entschieden, den Autologin einfach über agetty laufen zu lassen. Dafür habe ich das bestehende Systemd-Service-File von/für agetty dahingehend erweitert, dass der im Aufruf übergebene User automatisch auf tty7 angemeldet wird.

Dementsprechend habe ich das Service-File /etc/systemd/system/autologin@.service angelegt

[Unit]
Description=Autologin for %I
After=systemd-user-sessions.service
Before=getty.target
IgnoreOnIsolate=yes
ConditionPathExists=/dev/tty7

[Service]
ExecStart=-/sbin/agetty -a %I tty7 38400 linux
Type=idle
Restart=always
RestartSec=0
UtmpIdentifier=tty7
TTYPath=/dev/tty7
TTYReset=yes
TTYVHangup=yes
TTYVTDisallocate=yes
KillMode=process
IgnoreSIGPIPE=no
KillSignal=SIGHUP

[Install]
WantedBy=multi-user.target

und die erste Zeile meiner heimischen ~/.zshrc bzw ~/.bashrc (basierend auf eurer Default Shell) entsprechend erweitert.

[[ -z $DISPLAY && $XDG_VTNR -eq 7 ]] && exec startx &> ~/.xlog

Anschließend muss noch die ~/.xinitrc entsprechend angepasst werden, damit sie Openbox startet.

#!/bin/sh
exec openbox-session

Zum Abschluss reicht dann ein simples

systemctl enable autologin@philipp.service