Fenster Verwalter bei Systemstart automatisch starten ohne Anmelde Verwalter

kongstrong

Well-Known Member
Hallo,

wie kann man unter FreeBSD12-2-Stable den Fenster Verwalter (Windows Manager) "JWM" automatisch bei Systemstart ohne einen Anmelde Verwalter (LoginManager(xdm/slim)) starten lassen ? Eine .xinitrc mit den 755 rechten im Verzeichnis des Benutzers: "foobar" bringt leider keinen Erfolg. Im Handbuch werde ich auch nicht so richtig fündig für eine Lösung.
 
Also ich hab ebenfalls kein grafischen Login-Manager und bilde mir deshalb ein, dazu was sagen zu können. :-)

Eine X11-Session wird dabei von der Kommandozeile mit startx gestartet.
Wenn Du möchtest, das X.org quasi schon beim Login gestartet wird kannst Du das auch in der entsprechenden Einstellungsdatei Deiner Shell eintragen. Für die unter FreeBSD gängige C-Shell wäre das eben die .cshrc in Deinem Homeverzeichnis.

Die .xinitrc wird dann von "startx" ausgewertet. Dort trägst Du dann Deinen Window-Manager ein:
Code:
exec jwm
oder wie auch immer der aufgerufen wird.
Die .xinitrc muss (und sollte) aber nicht executable sein.

Wenn man will kann man dann noch via /etc/tty und /etc/gettytab ein Autologin konfigurieren, um die X11-Session sozusagen schon bei Bootup hochzubringen ohne sich erst manuell einloggen zu müssen.
 
Eine X11-Session wird dabei von der Kommandozeile mit startx gestartet.
Wenn Du möchtest, das X.org quasi schon beim Login gestartet wird
Das stimmt sicher, ich meine mich aber zu erinnern, dass ein Start mancher Fenstermanager oder Desktop-Environments auch automatisch X startet, weil da nämlich komplette Start-Scripts oder Routinen abgearbeitet werden. Da muss dann nicht erst noch startx durchgeführt werden.

Ob das bei jwm so ist, weiß ich nicht.
Grundsätzlich kann nur automatisiert werden, was auch manuell funktioniert und insofern hat man da doch eine gute Herangehensweise.

Nebenbei: auch startx selbst ist ja nur ein Script.
 
Moin !

Du musst nur das automatisieren was du sonst manuell erledigst !! :ugly:


1. Den Login als user auf der Konsole.

Das hier könnte dir weiterhelfen !


2. Autostart X !

Da kommt es darauf an welche shell du nutzt .
Ich nutze hier die zsh .

- Erstelle ein /home/USER/.config/autostart_x.sh

mit folgendem Inhalt :

#!/bin/sh
r=`top | grep Xorg`
if [ "$r" ]; then
echo "Xorg is already running."
else
echo "Xorg is not running."
startx &
fi

- dann in /home/USER/.login folgendes eintragen :

sh /home/USER/.config/autostart_x.sh

Die zsh liest den Inhalt von .login ein , bei der bash müsste
es auch so sein !

3. meine .xinitrc :

#
setxkbmap de
setxkbmap -option terminate:ctrl_alt_bksp
export QT_QPA_PLATFORMTHEME=qt5ct
export BROWSER="firefox"
export EDITOR="ee"
export LC_ALL=de_DE.UTF-8
export LANGUAGE=de_DE.UTF-8
export LANG=de_DE.UTF-8
ck-launch-session dbus-launch openbox-session


Gruss
 
Ein paar Ergänzungen/Anmerkungen:

r=`top | grep Xorg`
Bei FreeBSD gibts auch standardmäßig pgrep. Man kann also kürzer schreiben:
Code:
r = `pgrep Xorg`
:-)

Die zsh liest den Inhalt von .login ein , bei der bash müsste
es auch so sein !
By default gibts keine bash unter FreeBSD.
Die ~/.login müsste aber trotzdem beachtet werden. Zumindest bei der (t)csh bin ich mir da ziemlich sicher.
Für die POSIX-Shell (/bin/sh) würde ich es gefühlsmäßig eher verneinen (da war es /etc/profile und ~/.profile wenn ich mich recht entsinne).
Ich kenne aber auch niemand, der diese Shell einsetzt bzw. nicht gleich durch was Anderes ersetzt. Von daher ist es eher eine rein akademische Diskussion. :-)

ck-launch-session dbus-launch openbox-session
ck-launch-session braucht man vor allem, das übergebene Programm eine ConsoleKit-Session braucht. Insofern ist es ein guter Hinweis. Falls ein einfaches exec nicht reicht, kann der Grund eben in dem fehlenden ConsoleKit-Support liegen.
Egal welchen Aufruf man wählt, er sollte immer als letztes in der ~/.xinitrc stehen, da er blockierend ist.
 
Zurück
Oben