Firefox で異なるプロファイルの外部リンクを開くにはどうすればよいですか?

Firefox で異なるプロファイルの外部リンクを開くにはどうすればよいですか?

別々のプロファイルで実行されている Firefox のインスタンスが 2 つあります。

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

これで、次のコマンドでコマンドラインから新しいタブを開くことができます。

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

しかし、2 番目のプロファイルで新しいタブを開くにはどうすればよいでしょうか?

これ:

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

デフォルト プロファイルでタブを開きます。

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

そのプロファイルでインスタンスがすでに実行されているというエラーが表示されます。

答え1

Linux の 29.0で動作するようになりましたfirefox:

firefox別のプロファイルで2 番目のインスタンスを開くには:

firefox -P second -new-instance

すでに実行中の の 2 番目のインスタンスで新しいタブを開くにはfirefox:

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


見るバグ 716110 - 既存の -no-remote フラグから -new-instance フラグを分割しました追加のヒント(例:Hayoの投稿)

このバグレポートのコメントで説明されているように、欠けているのは、最初のウィンドウと 2 番目のタブを同じように開くために使用できるコマンドです。

これは次のようなスクリプトで実行できます ( firefox-profile-instance)。

#!/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

現在、デフォルト プロファイルの Firefox がすでに実行されていますが、
これを最初に実行すると、プロファイル「second」を持つ新しいブラウザーが起動します。

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

もう一度同じことを実行すると、同じブラウザで 2 番目のタブが開きます。

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

答え2

この答えは、フォルカー・シーゲルの回答は上記であり、2 つが統合されることを嬉しく思います。Firefox が をサポートしなくなったことを考慮して、新しいスクリプトをフォーマットするためにこれを書いています-remote

Firefox の新しいバージョン (バージョン 52 でテスト済み) は、-new-instanceリモート呼び出しをサポートする新しいインスタンスを生成するオプションをサポートしています。引数が指定されている場合、Firefox への後続の呼び出しでは、-P指定されたプロファイル名の実行中の Firefox プロファイルでアクションが実行されます。

スポーンとリンクのオープンを 1 つのスクリプトに組み合わせる場合は、pgrep次のようにして実現できます。

#!/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

(警告: このスクリプトはテストされていませんが、私が使用しているスクリプトを改変したものです)

答え3

回答に基づいて@アットライトURL に基づいて適切なプロファイルを自動的に選択する次のソリューションを開発しました。

このラッパー スクリプトは、Mozilla Firefox 104.0 を搭載した Ubuntu Linux 20.04.6 でテストされています。

#!/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

firefoxスクリプトをたとえば という名前で保存し$HOME/bin/、標準の Firefox の代わりに読み込まれることを確認します。(ディレクトリは、変数 の元のディレクトリの前にある必要があります$PATH。)

関連情報