Firefox- und Thunderbird-Startscripts

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

Früher kamen sie Hand in Hand als Mozilla-Suite daher, heute sind der Web-Browser Firefox und der Mail- und Newsclient Thunderbird getrennte Applikationen, die leider ausgerechnet unter klassisch angehauchten Unix-Systemen wie Linux weniger harmonisch zusammenspielen, als unter Mac OS X oder dem sogenannten "Windows"-Betriebssystem.

Der Umsteiger von Mozilla hat derzeit zwei Möglichkeiten: Er resigniert und kopiert URLs und Mailadressen von einem Programm ins andere, oder er entwickelt seine eigenen Startscripts, die das URL-Handling übernehmen und vereinfachen können.

Auf dieser Seite sollen einige selbstgeschriebene Scripts vorgestellt werden.

Martins Variante: /opt/moz

Erstmals veröffentlicht auf #!/bin/blog am 16.01.2005.

Diese Scripts können zu dreierlei Zwecken benutzt werden:

  • Initialer Start von Firefox bzw. Thunderbird (Klick aufs Icon).
  • Halbwegs würdevolles Verhalten, wenn das Icon ein zweites Mal angeklickt wird (Profil-Manager wird nicht geöffnet, aber ansonsten passiert auch nicht allzu viel).
  • ÿffnen von in Thunderbird angeklickten WWW-Links in Firefox und ÿffnen von in Firefox angeklickten mailto-Links in Thunderbird.

Die Scripts wurden bisher hauptsächlich unter WindowMaker eingesetzt. Unter Gnome und KDE müssen sie vermutlich als bevorzugte Browser- bzw. Mailanwendung eingetragen werden.

Es wird vorausgesetzt, daÿ die Binärdistributionen von Firefox und Thunderbird unter /opt/moz/firefox und /opt/moz/thunderbird entpackt wurden. Die Scripts können sinnvollerweise in /opt/moz/bin liegen, funktionieren aber auch, wenn man sie z.B. nach /usr/local/bin legt. Es wurde Wert darauf gelegt, daÿ die Scripts möglichst kurz, übersichtlich und nachvollziehbar sind, daher fehlt ihnen das eine oder andere Feature.

Script: /opt/moz/bin/firefox

#!/bin/bash
unset MOZILLA_FIVE_HOME
FFDIR=/opt/moz/firefox
$FFDIR/firefox -remote 'ping()'
if [ $? -eq 0 ]; then
  $FFDIR/firefox -remote "openURL("$1", "new-tab")"
else
  exec $FFDIR/firefox "$1"
fi

Script: /opt/moz/bin/thunderbird

#!/bin/bash
unset MOZILLA_FIVE_HOME
TBDIR=/opt/moz/thunderbird
$TBDIR/thunderbird -remote 'ping()'
if [ $? -eq 0 ]; then
  mailaddr=`echo "$1" | sed -e's/^mailto://'`
  $TBDIR/thunderbird -remote "mailto("$mailaddr")"
else
  exec $TBDIR/thunderbird "$1"
fi


Einbindung dieser Scripts für die URL-Behandlung im Browser bzw. Mailprogramm:

Konfiguration: /opt/moz/thunderbird/defaults/profile/prefs.js

user_pref("network.protocol-handler.app.ftp", "/opt/moz/bin/firefox");
user_pref("network.protocol-handler.app.http", "/opt/moz/bin/firefox");
user_pref("network.protocol-handler.app.https", "/opt/moz/bin/firefox");

Konfiguration: /opt/moz/firefox/defaults/profile/prefs.js

user_pref("network.protocol-handler.app.mailto", "/opt/moz/bin/thunderbird");

Andere Vorschläge?

Wer hat andere Scripts? Immer her damit!


Ja, da gäbe es was:

Da sich sowohl mein Firefox als auch mein Thunderbird von den Einträgen in den "prefs.js"-Files unbeeindruckt zeigten, habe ich die Sache anders (und sogar einfacher) gelöst:

Man gebe beim Firefox in die Adress-Zeile "about:config" ein. Dort legt man mit rechte Maustaste -> neu -> String den bereits genannten String an:

Eigenschaftsname: network.protocol-handler.app.mailto

String-Wert: /opt/moz/bin/thunderbird

Beim Thunderbird gestaltet sich die Sache etwas schwieriger, da dieser keine Adresszeile zum "about:config" eingeben hat. Aber es gibt auch hier eine Lösung. Man installiere sich des Thunderbird-Plugin "AboutPlugin" (http://aboutconfig.mozdev.org/) und schon kann man über Extras -> about:config das gleiche Konfigurations-Menü wie beim Firefox erreichen. Hier analog die drei o.g. Eigenschaften als String erfassen und glücklich sein!

Traps and Pitfalls

Wie so oft gibt es im Umgang mit der prefs.js auch unerwartete Seiteneffekte. Diese sollen hier dokumentiert werden.

64 Bit chroot Umgebung

Wer eine 64Bit Linux Installation hat, Thunderbird und Mozille jedoch wegen spezieller Plugins in einer 32 Bit Chroot Umgebung laufen hat, muss darauf achten, dass sich bei den o.g. Skripten Firefox und Thunderbird bereits im 32 Bit Chroot befinden. Folgendes Beispiel, um das zu veranschaulichen:

Nehmen wir mal an, das das Startskript für Firefox wie folgt aussieht:

# cat /opt/cftools/firefox
#!/bin/sh

schroot --preserve-environment /opt/firefox/firefox

und

# cat /opt/cftools/thunderbird
#!/bin/sh

schroot --preserve-environment /opt/thunderbird/thunderbird

In der prefs.js für Firefox muss jetzt folgendes stehen:

user_pref("network.protocol-handler.app.mailto", "/opt/thunderbird/thunderbird");

Wer dagegen nun /opt/cftools/thunderbird da stehen hat, bekommt im besten Falle einfach eine Meldung schroot not found was ja auf den zweiten Blick auch logisch ist, da Firefox bereits in seinem 32Bit Gefängnis läuft und den Thundebird bereits in der 32 Bit Umgebung aufruft.

Umgekehrt gilt das natürlich auch für die prefs.js des Thunderbird.