Startx mit Windowmanager auswahl

aus PUG, der Penguin User Group
Wechseln zu: Navigation, Suche

startx mit Windowmanager auswahl

Da die Anleitung in der Mailingliste gut geklappt hat, stelle ich sie nun Überarbeitet ins Wiki.
Ich will aber auch noch eine kurze Einleitung dazu geben.
Wenn man den X Server nicht über einen Displaymanager starten will, sondern ihn nur ab und zu benätigt, geschieht dies mit startx. Dieses überprüft dann, ob sich eine xinitrc in /etc/X11/xinit/ befindet. Diese wird dann als default für alle user verwendet, die keine ~/.xinitrc Datei besitzen. Wenn sich mehrere Windowmanger auf dem System befinden ist es ratsam die xinitrc Datein der Manger einzeln zu speichern - also z.B. xinitrc.kde. /etc/X11/xinit/xinitrc ist dann ein symbolischer Link auf den jeweiligen default WM (Window Manager). Bei der Verwendung der ~/.xinitrc Dateien ist dies auch ratsam.
Leider muss man nun als user immer selbst die Links umändern. Um das ganze etwas "fauler" zu gestalten ist vielleicht diese Anleitung recht hilfreich. Sie erklärt die Verwendung des Skriptes an dem Beispiel von Enlightenment und Gnome.

Alle folgenden Schritte sind als Root zu erledigen.
In die Datei /usr/X11R6/bin/startX kommt:

#!/bin/bash
# Written by Bernhard Guillon under the terms of the GPL
case "$1" in
e16) ln -sf /etc/X11/xinit/xinitrc.e16 ~/.xinitrc ;;
gnome) ln -sf /etc/X11/xinit/xinitrc.gnome ~/.xinitrc;;
*) echo $1 kenne ich noch nicht als Windowmanger;;
esac
startx -- -nolisten tcp

Diese wird nun mit

chmod 755 /usr/X11R6/bin/startX

ausführbar gemacht.

Nun legen wir die Datei

 
/etc/X11/xinit/xinitrc.e16

mit folgendem Inhalt an.

#!/bin/bash
exec enlightenment

und machen diese wieder mit

chmod 755 /etc/X11/xinit/xinitrc.e16

ausführbar.

Nun legen wir noch die Datei

/etc/X11/xinit/xinitrc.gnome

an und füllen diese mit dem original Skript von Gnome

#!/bin/sh
# $XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $

userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/usr/X11R6/lib/X11/xinit/.Xresources
sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap

# merge in defaults and keymaps

if [ -f $sysresources ]; then
   xrdb -merge $sysresources
fi

if [ -f $sysmodmap ]; then
   xmodmap $sysmodmap
fi

if [ -f $userresources ]; then
   xrdb -merge $userresources
fi

if [ -f $usermodmap ]; then
   xmodmap $usermodmap
fi

# This nag screen isn't going to save anybody.
export NAUTILUS_OK_TO_RUN_AS_ROOT=1

# Start the window manager:
exec gnome-session

Das ausführbar machen mit

chmod 755 /etc/X11/xinit/xinitrc.gnome

nicht vergessen.

Nun müssen wir nicht mehr Root sein und unsere Arbeit ist für Enlightenment 16 und Gnome getan. Wer weitere Manager will kann diese gerne hinzufügen.

Nutzen kann man das Skript nun wie folgt

startX e16

Dies würde den Enlightenment starten.