Windowmanager

Aus Fachschaft_Informatik
Version vom 13. März 2007, 17:23 Uhr von fsrwiki_>4winter (Uns selbst mit der bash starten und die Loginscripte sourcen)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Wenn einem KDE, GNOME, CDE und FVWM alle nicht gefallen, kann man auch seinen eigenen Windowmanager auswählen. Das geht allerdings nicht über das Menü beim Einloggen, sondern man muss es in der Datei .xinitrc selbst eintragen und dann beim Login als Session "FVWM" waehlen. Die Datei koennte folgendermassen aussehen:

# make sure we're run by the bash
if [ x"$BASH_VERSION" = x"" ]
then
  exec /usr/bin/env bash $0
fi

# Alle Ausgaben mitloggen -- das kann auch später nützlich sein,
# um zu gucken, was Programme, die nicht aus einem Terminal heraus
# gestartet werden, ausgeben.
#
exec 1>> "$HOME/.x11_log" 2>&1
echo "[`date`] X11-Sitzung auf `hostname` gestartet ..."

# bash loginscripte sourcen
for S in $HOME/.bash_profile $HOME/.bash_login $HOME/.profile
do
  [ -f $S ] && . $S
done

# dont beep
xset b off

# kill the annoying caps lock key
xmodmap -e "remove lock = Caps_Lock"

# Abhängig vom Betriebssystem sollen verschiedene Windowmanager
# ausgewählt werden.
#
case `uname` in
  SunOS) programs="fluxbox icewm xterm" ;;
  Linux) programs="windowmaker fluxbox icewm xterm" ;;
  *)     programs="xterm" ;;
esac
 
# Start ssh agent (idea stolen from OpenBSD)
id1=$HOME/.ssh/identity
id2=$HOME/.ssh/id_dsa
id3=$HOME/.ssh/id_rsa
if [ -x /usr/pkg/2006Q2/bin/ssh-askpass ] && [ -f $id1 -o -f $id2 -o -f $id3 ];
then
  eval `ssh-agent -s`
  SSH_ASKPASS=/usr/pkg/2006Q2/bin/ssh-askpass ssh-add < /dev/null
fi

# Das erste Programm aus der oben gewählten Liste ausführen.
success=0
pid=0

for p in $programs
do
  if type "$p" > /dev/null
  then
    echo "Starting $p..."
    "$p" &
    pid=$!

    # wait some time and check if its still alive
    sleep 1
    pgrep "$p" | grep $pid > /dev/null && { success=1; break; } 
{| class="wikitable"
!
|}
 echo "$p failed."
  else
    echo "$p is not found in $PATH." 1>&2
  fi
done

if [ $success -eq 1 ]
then
  # wait for windowmanager to exit
  wait $pid
else
  msg='Kein Programm zum Ausfuehren gefunden. :('
  echo "$msg" 1>&2
  xmessage -center -timeout 15 "$msg"
fi  

if [ "$SSH_AGENT_PID" ]
then
  ssh-add -D < /dev/null
  eval `ssh-agent -s -k`
fi

: