Firefox: 検索エンジンの追加設定を管理する

Firefoxでは【設定】から検索エンジンを手動追加するのもいいが、環境移行などの際にいちいち設定から追加するのも面倒です。Firefoxでは追加したい検索エンジンをpolicies.jsonで管理することが可能です。環境移行もバックアップも取れるので便利です。

policies.jsonとは

policies.jsonとは、Firefoxの設定を制御(カスタマイズ)するファイルで検索エンジンの追加情報であったり、閲覧制限、コンテンツ設定、拡張機能の管理なども行えます。詳しくはFirefox ポリシーのリファレンスをご覧ください。

policies.jsonの配置場所

ここではWindowsを例に解説します。その他のOSを使用している場合はConfiguring Firefox using policies.jsonをご覧ください。

policies.jsonを作成する前にdistributionというディレクトリを下記の階層下に作成します。

C:\Program Files\Mozilla Firefox

そしてdistributionというディレクトリ内にpolicies.jsonを作成します。ファイルはUTF-8で保存してください。

C:\Program Files\Mozilla Firefox\distribution\policies.json

検索エンジンの追加

次のコードはDuckDuckGoがデフォルトの検索エンジンとなり、Amazonの検索エンジンが追加されます。基本的には既存の検索エンジンは追加されたままなので消したい場合Removeで削除したい検索エンジンの名前を登録する必要があります。

例

{
  "policies": {
    "SearchEngines": {
      "Default": "DuckDuckGo",
      "Add": [
        {
          "Name": "Amazon",
          "URLTemplate": "https://www.amazon.co.jp/s?k={searchTerms}",
          "Method": "GET",
          "IconURL": "https://www.amazon.co.jp/favicon.ico",
          "Alias": "@a",
          "Description": "Description",
          "SuggestURLTemplate": "https://www.example.org/suggestions/q={searchTerms}"
        }
      ],
      "PreventInstalls": true
    }
  }
}

SearchEngines は、次のキーを1つ以上持つオブジェクトを受け付けます。

  • Add(オブジェクトの配列): 新しい検索エンジンを追加します。各エントリでは次の項目を指定できます。
    • Name(必須): 登録する検索エンジンの名前。
    • URLTemplate(必須): 検索用の URL。検索語を{searchTerms}と置き換えます。
    • Method: GET または POST のどちらか。
    • IconURL: 使用するアイコンの URL。基本的にはドメインの直下に/favicon.icoがあるはず。
    • Alias: その検索エンジンを呼び出すためのキーワード。例:@aやaなど。@は省略可能。
    • Description: 検索エンジンの説明。(※表示に関係ないので基本不要)
    • PostData: POST で送信するデータ。name=value の組を & で区切って指定します。(※表示に関係ないので基本不要)
    • SuggestURLTemplate: 検索候補を取得するための URL。検索語を置き換える部分に {searchTerms} を入れます。(※表示に関係ないので基本不要)
  • Default(文字列): デフォルトの検索エンジンを設定します。検索エンジン名はNameに該当します。
  • PreventInstalls(真偽値): Web ページからの検索エンジンのインストールを禁止します。
  • Remove(文字列の配列): 組み込みの検索エンジンを名前で指定して非表示にします。検索エンジン名はNameに該当します。

複数の検索エンジンを追加と不要な検索エンジンの削除について

,で区切ることで複数のエンジンを追加することが可能です。また削除したい場合はRemoveを下記のように追加することで既存検索エンジンから削除することが可能です。検索エンジン名は下記のように名前をセットすればOKです。

{
	"policies": {
		"SearchEngines": {
			"Default": "DuckDuckGo",
			"Add": [
				{
					"Name": "Amazon",
					"URLTemplate": "https://www.amazon.co.jp/s?k={searchTerms}",
					"Method": "GET",
					"IconURL": "https://www.amazon.co.jp/favicon.ico",
					"Alias": "a"
				},
				{
					"Name": "YouTube",
					"URLTemplate": "https://www.youtube.com/results?search_query={searchTerms}",
					"Method": "GET",
					"IconURL": "https://www.youtube.com/favicon.ico",
					"Alias": "y",
					"Description": "YouTube",
					"SuggestURLTemplate": "https://www.youtube.com/suggestions/q={searchTerms}"
				}
			],
			"Remove": [
				"Bing", "Perplexity", "Wikipedia (ja)", "Yahoo! JAPAN", "Yahoo!オークション", "楽天市場"
			],
			"PreventInstalls": true
		}
	}
}

ポリシーの確認

続いて追加した検索エンジンが使用可能かポリシーの確認を行います。about:policiesにアクセスすると有効ポリシーが確認できます。

ドキュメントではポリシー一覧があるので目を通しておくのもいいかもしれません。あとはこのファイルをGitで管理すれば移行も楽。