Windowmanager: Unterschied zwischen den Versionen

Aus Fachschaft_Informatik
Zur Navigation springen Zur Suche springen
fsrwiki_>4winter
K (Uns selbst mit der bash starten und die Loginscripte sourcen)
 
fsrwiki_>Oddmuse Import
K (link fix)
Zeile 3: Zeile 3:
<pre>
<pre>
# make sure we're run by the bash
# make sure we're run by the bash
if [ x"$BASH_VERSION" = x"" ]
if [ x"$[[BASH_VERSION]]" = x"" ]
then
then
   exec /usr/bin/env bash $0
   exec /usr/bin/env bash $0
Zeile 25: Zeile 25:


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


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


Zeile 80: Zeile 80:
fi   
fi   


if [ "$SSH_AGENT_PID" ]
if [ "$[[SSH_AGENT_PID]]" ]
then
then
   ssh-add -D < /dev/null
   ssh-add -D < /dev/null

Version vom 5. November 2007, 08:19 Uhr

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

: