Wie öffne ich mit Firefox externe Links in verschiedenen Profilen?

7

Ich habe zwei Instanzen von Firefox, die unter separaten Profilen ausgeführt werden:

$ firefox -P default &
...
$ firefox -no-remote -P second &

Jetzt kann ich eine neue Registerkarte über die Befehlszeile öffnen mit:

$ firefox -new-tab http://unix.stackexchange.com

Aber wie öffne ich einen neuen Tab im zweiten Profil?

Diese:

$ firefox -P second -new-tab http://unix.stackexchange.com

öffnet eine Registerkarte im Standardprofil, während:

$ firefox -no-remote -P second -new-tab http://unix.stackexchange.com

beschwert sich, dass unter diesem Profil bereits eine Instanz ausgeführt wird.

chris
quelle
2
Sie müssen -new-instanceanstelle von verwenden -no-remote(siehe Fehler # 716110 ). Aber auch das funktioniert ab Firefox 29 nicht: firefox -P second URLkontaktiert immer noch die erste Instanz.
Gilles 'SO - hör auf böse zu sein'
Gilles ' Kommentar oben hat aufgehört, wahr zu sein, firefox 39siehe Kommentare unten.
Att Righ

Antworten:

3

Es funktioniert jetzt mit firefox29.0 unter Linux:

So öffnen Sie eine zweite firefoxInstanz mit einem anderen Profil:

firefox -P second -new-instance

So öffnen Sie in der zweiten Instanz von eine neue Registerkarte firefox, die bereits ausgeführt wird:

firefox -P second -remote "openurl(http://example.com,new-tab)"


Siehe Bug 716110 - split -neue-Instanz - Flag aus -no-remote Flagge bestehenden für zusätzliche Hinweise (zB: Post von Hayo).

Wie in den Kommentaren zu diesem Fehlerbericht erläutert, fehlt ein Befehl, mit dem das erste Fenster und die zweite Registerkarte auf dieselbe Weise geöffnet werden können:

Dies könnte mit einem Skript in Anlehnung an this ( firefox-profile-instance) geschehen :

#!/bin/bash

PROFILE="$1"
URL="$2"

if firefox -P "$PROFILE" -remote "ping()" >/dev/null 2>&1 ; then
    firefox -P "$PROFILE" -remote "openurl($URL,new-tab)"
else
    firefox -P "$PROFILE" -new-instance "$URL" &
fi

Während jetzt ein Firefox mit dem Standardprofil bereits ausgeführt wird, wird
beim ersten Ausführen ein neuer Browser mit dem Profil "second" gestartet:

firefox-profile-instance second "http://example.com"

Wenn Sie dasselbe erneut ausführen, wird eine zweite Registerkarte im selben Browser geöffnet:

firefox-profile-instance second "http://example.com"

Volker Siegel
quelle
1
Die -remoteOption wurde aus Firefox entfernt . Allerdings sind die bestehenden Befehle -new-window, -new-tabund die generische Open - Befehl wurden erweitert die Option -P (true in Firefox 52) zu unterstützen ..
Att Righ
1
Es scheint kein Äquivalent zu dieser -remote ping()Option zu geben. Dies kann durch einen Anruf bei ersetzt werden pgrep(siehe Antwort unten).
Att Righ
0

Diese Antwort ist eine Erweiterung der obigen Antwort von Volker Siegel und ich freue mich, dass die beiden zusammengeführt werden. Ich schreibe dies nur, um ein neues Skript zu formatieren, da Firefox nicht mehr unterstützt -remote.

Neue Versionen von Firefox (getestet mit Version 52) unterstützen eine -new-instanceOption zum Erstellen einer neuen Instanz, die Remoteaufrufe unterstützt. Nachfolgende Aufrufe von Firefox führen, wenn ein -PArgument angegeben wird, Aktionen in einem laufenden Firefox-Profil mit dem angegebenen Profilnamen aus.

Wenn Sie das Laichen und das Öffnen von Links in einem Skript kombinieren möchten, können Sie dies pgrepwie folgt erreichen:

#!/bin/bash
profile=profile-name
if pgrep --full "^firefox-esr\b.*$profile" > /dev/null; then
    firejail --profile=$HOME/.firejail/firefox.jail.profile firefox -P "$profile" "$@" > /dev/null
else
    firejail --profile=$HOME/.firejail/firefox.jail.profile firefox -new-instance -P "$profile" "$@"
    disown $!
fi

(Warnung, dieses Skript wurde nicht getestet, wurde jedoch von einem von mir verwendeten Skript angepasst.)

Att Righ
quelle