Entschuldigung für die 3 Jahre verspätete Antwort, ich habe mich gerade für dieses Thema interessiert und diese Frage gefunden.
Ich habe nirgendwo eine dokumentierte Lösung gefunden, also habe ich den Quellcode überprüft und hier ist ein sehr relevanter Teil:
http://dxr.mozilla.org/mozilla-central/source/toolkit/xre/nsAppRunner.cpp#1537
Hier bedeutet der Nullptr am Ende der Zeile leider, dass das Profilargument nicht an die SendCommandLine-Funktion übergeben wird. Daher ist es nicht möglich, das richtige Firefox-Fenster auszuwählen, an das die OpenURL-Nachricht gesendet werden soll.
Wir sehen jedoch, dass der Benutzername übergeben wird und dass der Benutzername aus der Umgebungsvariablen LOGNAME intiailisiert wird. Auf dieser Grundlage habe ich die folgende Lösung gefunden:
- Ich verpacke Firefox mit diesem Skript namens Firefox.sh:
FOX_PROFILE = Facebook
export LOGNAME = errge. $ FOX_PROFILE
/ opt / Firefox / Firefox-Profil ~ / .mozilla_profiles / $ FOX_PROFILES "$ @"
Beim ersten Ausführen wird eine neue Instanz gestartet und das Verzeichnis ~ / .mozilla_profiles / facebook muss vorhanden sein.
Wenn das Facebook-Profil das zweite Mal ausgeführt wird und bereits ausgeführt wird, wird eine korrekte Verbindung hergestellt.
Es kann Befehle korrekt an mehrere verschiedene laufende Profile senden (natürlich müssen Sie den Parameter FOX_PROFILE in der ersten Zeile in den verschiedenen Skripten ändern).
Ich habe dies mit Firefox 26 unter Linux getestet und es funktioniert.
Alternativ ist hier meine vollwertige Lösung, die Sie möglicherweise verwenden möchten oder nicht:
#! / bin / bash
setze -e
FOX = / opt / Firefox / Firefox
NACHRICHT = $ @
if [-z "$ FOX_PROFILE"]; dann
if [-z "$ {MESSAGE}"]; dann
FOX_PROFILE = Standard
sonst
FOX_PROFILE = $ (kdialog --default default --menu "- $ {MESSAGE} -" Standardstandard Google Google Facebook Facebook Errge Errge Spam Spam)
fi
fi
exportiere FOX_PROFILE
# Dieser Hack wird benötigt, da Firefox Remote-Befehlszeilen senden
# ignoriert den Profilparameter. Siehe nsAppRunner.cpp: 1505.
export LOGNAME = errge. $ FOX_PROFILE
# Verwenden der Hintergrundausführung anstelle von exec, also ist das Verhalten
# konsistent, wenn das Profil bereits ausgeführt wird und wenn es nur ausgeführt wird
# Inbetriebnahme.
$ FOX -profile ~ / .mozilla_profiles / $ FOX_PROFILE "$ @"
# Riesenerfolg.
Ausfahrt 0
Wenn Sie das Skript ohne Parameter ausführen, wird das Standardprofil automatisch ausgewählt. Sie können es jedoch überschreiben, indem Sie FOX_PROFILE manuell in Ihrer Shell festlegen. Wenn eine URL in der Befehlszeile übergeben wird, wird immer nach einem Profil gefragt, in dem sie geöffnet werden soll. Dies liegt daran, dass ich hauptsächlich in meinem Chat- und E-Mail-Programm durchklicke und in diesem Fall immer ein Profil auswählen möchte (Google für Kalender) Spam, Facebook für Geburtstags-Spam usw.). Natürlich können Sie die Logik an Ihren Verwendungsstil anpassen. Dies ist nur ein Beispiel. Das wichtige Wissen ist der LOGNAME-Trick.
Und natürlich müssen Sie sicherstellen, dass dieses Wrapper-Skript die einzige Möglichkeit ist, den Browser auf Ihrem Computer zu starten. Denn wenn Sie ein Profil ohne den richtigen LOGNAME-Satz öffnen, können Sie nicht mehr mit diesem Profil kommunizieren. Ich habe dieses Skript als erstes in meinen Pfad über mehrere verknüpfte Namen wie x-www-browser, Firefox, Sensible-Browser eingefügt und es auch in die Umgebungsvariable BROWSER eingefügt. Wie dies genau funktioniert, hängt von Ihrer GNU / Linux-Distribution ab.