別々のプロファイルで実行されている 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
。)