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

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

Ich habe zwei Firefox-Instanzen, die unter separaten Profilen laufen:

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

Jetzt kann ich von der Befehlszeile aus eine neue Registerkarte öffnen mit:

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

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

Das:

$ 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.

Antwort1

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 eine neue Registerkarte in der zweiten Instanz von firefox, die bereits ausgeführt wird:

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


SehenFehler 716110 – Flag „-new-instance“ aus vorhandenem Flag „-no-remote“ heraustrennenfür weitere Hinweise (z. B.: Beitrag von Hayo).

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

Dies könnte mit einem Skript in etwa diesem ( firefox-profile-instance) erreicht werden:

#!/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 nun bereits ein Firefox mit dem Standardprofil läuft,
wird beim ersten Durchlauf hiervon ein neuer Browser mit dem Profil „second“ gestartet:

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

und wenn Sie das Gleiche noch einmal ausführen, wird eine zweite Registerkarte im selben Browser geöffnet:

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

Antwort2

Diese Antwort ist im Wesentlichen eine Erweiterung vonVolker Siegel's Antwort oben und ich bin zufrieden, wenn die beiden zusammengeführt werden. Ich schreibe dies nur, um ein neues Skript zu formatieren, da Firefox dies nicht mehr unterstützt -remote.

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

pgrepWenn Sie das Spawnen und das Öffnen von Links in einem Skript kombinieren möchten, können Sie dies wie unten gezeigt 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

(Achtung: Dieses Skript wurde nicht getestet, sondern basiert auf einem von mir verwendeten Skript.)

Antwort3

Basierend auf der Antwort von@Att, richtigIch habe folgende Lösung entwickelt, die anhand der URL automatisch das richtige Profil auswählt.

Dieses Wrapper-Skript wurde auf Ubuntu Linux 20.04.6 mit Mozilla Firefox 104.0 getestet.

#!/bin/bash

if [[ "$@" =~ .*"google."|"facebook.com"|"instagram.com".* ]] 
then
    profile=for_evil_sites
else
    profile=default
fi  

if pgrep --full "firefox\b.*$profile" > /dev/null; then
    /usr/bin/firefox -P "$profile" "$@" > /dev/null
else
    /usr/bin/firefox --new-instance -P "$profile" "$@" > /dev/null
    disown $!
fi

Speichern Sie das Skript unter dem Namen firefoxzB in $HOME/bin/und stellen Sie sicher, dass es anstelle Ihres Standard-Firefox geladen wird. (Das Verzeichnis muss vor dem Originalverzeichnis in der Variable liegen $PATH.)

verwandte Informationen