Per TTY1 direkt ins Desktop Environment einloggen

Aufgrund meiner Anfänglichen Problemchen mit X11 und den verschiedenen Dateien, habe ich es letztlich ja nicht geschafft, mich über TTY1 direkt anzumelden. Dank SammyHP aus den Kommentaren des letzten Artikels und eigenen kleinen Änderungen am Skript und beschaffen an Informationen, habe ich das nun jedoch geschafft. Den Weg möchte ich hier Schritt für Schritt aufzeichnen, um ihn nicht zu vergessen..^^

Ich beginne damit, den Desktop Manager für X11(also der Automatisch aufgerufene..) zu deaktivieren.
Dafür wird die Datei /etc/X11/default-desktop-manager einfach geleert, oder Auskommentiert(‚#‘ Kennzeichnet die Kommentare). Dort steht der Pfad des DE’s. Beispielsweise…

zu..

Weiter gehts mit…

…der .xinitrc

die ~/.xinitrc wird immer beim Starten des X11 ausgeführt. Sie beinhaltet normalerweise Sachen wie das starten eines Desktop Environments und die dafür benötigten Programme/Variablen/Skripts. Ich definiere hier normalerweise Variablen(Pfade von wichtigen Verzeichnissen), um diese nicht ständig ausschreiben zu müssen:

Ich habe das ganze mal ein bisschen Auskommentiert, sodass die einzelnen Punkte verständlich sein dürften.

Am ende, so wird es jeder bemerkt haben, wird einfach das DE ausgeführt welches man gerade benutzten möchte. Wichtig dabei ist dass exec.

Die .bashrc

Diese Datei, die ~/.bashrc, führt beim Login des Users bestimmte Events aus. z.B werden RGB Farben geladen, bestimmte Debug-Meldungen generiert, usw. Die sollte in ungefähr so aussehen:

Um jetzt beim Login des Users direkt den X-Server zu starten, kann einfach ein startx am Ende der Datei angefügt werden.

Oder man macht es ein bisschen Raffinierter: Man startet den X11 nur, wenn auf einer bestimmten TTY eingeloggt wurde. So kann man z.B nur beim Login in die TTY1 der X11 aufgerufen werden, aber nicht beim Login in die zweite TTY.(Danke Sammy)

$DISPLAY stellt hier den Monitor dar, und $XDG_VTNR stellt die Nummer der TTY(1-6) bereit. -eq bedeutet schlichtweg, dass die beiden Variablen der 1 entsprechen müssen. Ansonsten wird der folgende Befehl nicht ausgeführt.(Die [[/]] sind die Bourningshell Abkürzung für if-Abfragen)

Wenn man sich nun per sudo shutdown now abmeldet/alles herunterfährt(der Rechner bleibt an!) und STRG+D wieder startet, wird anstatt des Desktop Managers nun die TTY1 angezeigt, welche auf den Login warten. Sobald sich nun jemand einloggt, wird der X11 gestartet, welcher das DE ausführt.

Probleme mit Dämonen

Ich führe, wie oben ersichtlich ist, den URxvt Daemon(urxvtd) aus. Dieser schließt sich folgerichtig nicht, sobald der X11 geschlossen/gestoppt wurde. X11 bietet hier aber auch nichts an Skripts an, welche ausgeführt werden sobald er sich schließt. Dies kann man durch ein einfaches Shellskript und dem Befehl/Skript killall beheben(sollte auf jedem Debian/RHEL Rechner vorhanden sein):

Es passiert eigentlich nicht viel. Es wird nur der X11 gestartet(startx) und dann(sobald er beendet wurde) wird der Prozess urxvtd gestoppt, sodass nicht mehrere von ihm vorhanden sein können.(Außer man trägt ihn doppelt und Dreifach überall ein)..

Die Datei nenne ich einfach „xstart“, lege sie als root in dem Verzeichnis /bin ab und gebe ausführ-Rechte mit..

. Nun muss nur noch das Ende der Datei ~/.bashrc geändert werden. Es wird einfach „startx“ durch „xstart“ ersetzt:

Womit wir eigentlich schon damit fertig wären.
Komisch wie einfach etwas sein kann, wenn man es sich nicht selbst zu kompliziert macht…

Freundliche Greetings 🙂

2 Gedanken zu „Per TTY1 direkt ins Desktop Environment einloggen

  1. Vieleicht hab  ichs ueberlesen aber du sagst nicht welche distro du nutzt.

    hab bei mir Arch + Xfce das aehnlich gemacht

    <code>.zshrc.local

    if [ "$(tty)" = "/dev/tty1" ]; then

    startxfce4

    fi</code>

    Binarys kommen glaub ich jetzt nur nach /usr/bin/ . /bin und /sbin werden oder sind links auf /usr/bin

    1. Hey,
      Nein, das habe ich tatsächlich nicht mit Reingeschriebene aufgrund dessen, das dies auf Arch, RHEL(Fedora, RedHat, CentOS etcetera und Ableger) und Debian soweit funktionieren sollte, da dass System dabei fast überall das selbe ist(X.org hat den ungemeinen Vorteil, dass es immer gleich ist).

      Gut zu wissen, das dies auch auf Arch funktioniert 🙂

      Jup, ich habe bei mir das ganze nur in /bin geschrieben, da der Suchpfad bei der Anmeldung ein anderer ist, als nach der Anmeldung(eig. Schwachsinn, aber so hat es nur funktioniert hier)

Kommentar verfassen