Firefoxを使用して他のプロファイルから外部リンクを開くには?

Firefoxを使用して他のプロファイルから外部リンクを開くには?

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

$ 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

これでfirefoxLinux 29.0で動作します。

firefox別の設定ファイルを使用して2番目のインスタンスを開くには、次の手順に従ってください。

firefox -P second -new-instance

firefoxすでに実行されているオペレーティングシステムの2番目のインスタンスで新しいタブを開くには、次の手順を実行します。

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がすでに実行されている間に
これを初めて実行すると、プロファイルが「2番目」の新しいブラウザが起動します。

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

同じコマンドを再実行すると、同じブラウザで2番目のタブが開きます。

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

答え2

この回答は概してストレッチです。ヴォルカー・シーゲル上記の答え、二つが合わさって嬉しいですね。 Firefoxはもはや-remote

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

ビルドとリンクを開くを単一のスクリプトに結合するには、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に基​​づいて正しいプロファイルを自動的に選択する次のソリューションを開発しました。

このラッパースクリプトは、Ubuntu Linux 20.04.6およびMozilla Firefox 104.0でテストされました。

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

firefoxinと同じ名前でスクリプトを保存し、標準の$HOME/bin/Firefoxの代わりにロードされていることを確認してください。 (このディレクトリは変数の元のディレクトリより前になければなりません$PATH。)

関連情報