Kde Environment und Shutdown Skripte
Kde wie in Sarge erhältlich (3.3.2) unterstützt Skripte
die automatisch vor dem Starten und nach dem Herunterfahren
des Desktops gestartet werden.
Diese Funktionalität hat nichts mit der Autostartfunktion
zu tun! Bei Autostart kann man sich Programme (mit Oberfläche)
starten lassen.
Hingegen bei env können keine Programme gestartet werden
die eine Oberfläche brauchen. Es ist aber trotzdem sehr
brauchbar um Dämonen, Agenten und Environment zu setzen.
Aufgrund des Verwendungszweckes wird das Verzeichnis auch
~/.kde/env genannt. Skripte in diesem Verzeichnis werden
der Reihe nach (echo *) ausgeführt.
Anwendungszwecke
ssh-agent: Enthält private Schlüssel für ssh
Startskript---------
#!/bin/sh
eval `ssh-agent`
ssh-add
--------------------
ACHTUNG!!!
x-mod settings: Remappings der Tastatur:
-------------------
#!/bin/sh
xmodmap -e 'keycode 91 = KP_Delete comma'
-------------------
oder allgemeiner:
-------------------
#!/bin/sh
xmodmap ~/.Xmodmap
-------------------
Liest gleich die Xmodmap ein dürfen _NICHT_ im
Environment gesetzt werden, sie haben dort
schlicht keine Auswirkung, weil X quasi noch
nicht gestartet ist (bzw. DISPLAY nicht gesetzt)!
gpg-agent: Für E-mail verschlüsselung/signatur
-------------------
#!/bin/sh
eval "$(gpg-agent --daemon)"
-------------------
signature: Stellt ~/.signature bereit
-------------------
#!/bin/sh
signature -f $HOME/.signature -q $HOME/Info/quote -r -t $HOME/.signature-template
-------------------
environment setzen
Ich setze mein Environment bereits in /etc/bash.bashrc.
Damit KDE Programme das selbe Environment haben, kann
man folgenden Link setzen:
cd ~/.kde/env
ln -s /etc/bash.bashrc bash.sh
ln -s ~/.bashrc mybash.sh
Nun hat man mehrere Programme gestartet, was hoffentlich auch
super funktioniert. Bald läuft man aber in ein Problem. Und
zwar genau dann wenn man kde neustartet, ohne den Computer
herunterzufahren. Die Programme würden doppelt starten.
Damit das nicht passieren kann gibt es ~/.kde/shutdown wo
man alle Agenten und Dämonen wieder killen muss. Environment
und x-mod mappings hingegen sind egal.
gpg-agent: Das killen ist etwas aufwendig.
-------------------
#!/bin/sh
if test -n "$GPG_AGENT_INFO"; then
pid=`echo "$GPG_AGENT_INFO" | cut -d: -f2`
if test -n "$pid"; then
kill $pid
fi
fi
-------------------
signature: Davon kille ich einfach alle (Fremde Prozesse darf ich eh nicht)
-------------------
#!/bin/sh
killall signature
-------------------
ssh-agent: Hier ist zum Glück die PID direkt im Environment
-------------------
#!/bin/sh
if test -n "$SSH_AGENT_PID"
then
kill "$SSH_AGENT_PID"
fi
-------------------