about:config と user.js による Firefox のカスタマイズ

2007年1月11日(木) 23時35分 by level
B ?

この記事は、Software Design 2007年1月号に掲載された拙著「Firefox 2 カスタマイズガイド」の一部を加筆修正したものです。

Firefox の設定画面は、他のブラウザに比べると驚くほど設定項目が少なくなっています。これは、初心者でも迷わないようにという方針により、徹底的な項目の絞込みが行われているためです。しかし、上級ユーザ向けに細かいカスタマイズの方法が提供されています。

もくじ

about:config とは

ロケーションバーに about:config と入力すると詳細設定画面が表示されます(Thunderbird 1.5 以降でもオプション→詳細→設定エディタからアクセスできます)。ここでは Firefox で設定可能なほとんどの変数とその値の一覧が表示されます。フィルタ欄に文字を入力すると、その文字列を含む変数を絞り込むことができます。値を変更するには各変数をダブルクリックしてダイアログから値を入力します。

about:configによる詳細設定画面

prefs.js と user.js

もう一つ、詳細設定を行う方法として prefs.js と user.js があります。prefs.js は Firefox のプロファイルフォルダにあるテキストファイルで、Firefox のカスタマイズ情報のほとんどが格納されています(Thunderbird でも同じ仕組みを用いています)。このファイルを直接編集しても良いのですが、別途 user.js というファイルも利用できるようになっています。user.js をプロファイルフォルダに置いておくと(このファイルはデフォルトでは存在しません)、起動時に読み込んで、prefs.js の設定を上書きしてくれます。よほどのことがない限り prefs.js を書き換えるのではなく user.js を用いるほうが良いでしょう。なお、これらのファイルはかならず UFT-8 形式で保存してください。

prefs.js と user.js では以下のフォーマットで変数と値を記述します。値が文字列の場合はダブルクォートで囲みます。

user_pref("変数名", 値);

本項で紹介するカスタマイズは、about:config、user.js のどちらでも設定可能ですが、複数のマシンに同じ設定をしたり、頻繁にプロファイルを作り直したりする場合には user.js を使うのが良いでしょう。

prefs.js と user.js の関係

prefs.js と user.js の関係を理解しておくと、きっとあとで役に立ちます。

  • Firefox 起動時の動作
    1. デフォルトの設定を読み込み
    2. prefs.js を読み込み
    3. user.js を読み込み
  • Firefox 使用中の動作
    1. オプション画面または、about:configからの設定の変更後即座に、現在の設定を prefs.js に書き込み(デフォルト値から変更されているもののみ)

これを見て分るように起動時には、user.js のほうが優先されます(user.js の設定で prefs.js の設定が上書きされます)。一方、書き込みは prefs.js に対してのみれ、user.js は読み込み専用です。(注:初稿時は Firefox 終了時に書き込みとしていたが、実際は変更の都度書き込みしていた。)

このことは、user.js で行った設定を取り消すには user.js から削除しただけではだめだということになります。設定を取り消す(デフォルトに戻す)には user.js だけでなく prefs.js からも該当記述を削除する必要があります。(prefs.js から削除するのではなく、about:config 上でデフォルトに戻すことも可能です。)

各 OS のプロファイルフォルダの場所

プロファイルフォルダの場所(Firefox & Thunderbird)を参照してください。

タブのクローズボタンの設定

Firefox 2 ではタブ周りの機能が強化され、デフォルトではすべてのタブにクローズボタンが表示されるようになりました。これが邪魔だと感じる人も多いようですが、これは以下の変数により変更が可能です

browser.tabs.closeButtons <数値>
0: アクティブなタブだけにクローズボタンを表示
1: 全てのタブにクローズボタンを表示(デフォルト)
2: クローズボタンを表示しない
3: タブバーの端にクローズボタンを表示(Firefox 1.x 相当)

上から0/1/2/3を設定した場合です。
browser.tabs.closeButtons=0
browser.tabs.closeButtons=1
browser.tabs.closeButtons=2
browser.tabs.closeButtons=3

タブのオーバーフロー制御

タブの表示に関しては以下のような設定もあります。

browser.tabs.tabClipWidth <数値>
 タブの幅がこの値より小さくなると、背面のタブのクローズボタンが表示
 されなくなる。デフォルトは140(px)。
browser.tabs.tabMinWidth <数値>
 タブの最小幅を指定する。デフォルトは100(px)。タブの幅をここまで縮小
 しても表示しきれない場合はオーバーフロー表示される。

新規タブをバックグラウンドで開く

ターゲット属性により新規タブで開かれるときに、デフォルトではそのタブが表に来てしまいますが、以下の変数を true に設定するとバックグラウンドで開かれます。

browser.tabs.loadDivertedInBackground <数値>

Firefox 1.5まではロケーションバーに単語を入力したときには Google の I'm Feeling Lucky(最初にヒットしたサイトにジャンプ)による検索が行われていましたが、Firefox 2になってからは Yahoo!検索に変更されました(その後Firefox 2.0.0.2でまた Google に戻りました)。ロケーションバーの検索エンジンは以下の変数で変更できます。

keyword.URL <文字列>

なお英語版(および Firefox 2.0.0.2 以降の日本語版)のデフォルトは Google の Browse By Name となっています。Browse By Name とは、ドンピシャのサイトが見つかった場合はそのサイトを、そうでない場合は通常の検索結果一覧を表示するものです。

keyword.URL に設定する URL 例
I'm Feeling Lucky
  http://www.google.com/search?ie=UTF-8&btnI=&q=
  http://www.google.com/search?btnI=I%27m+Feeling+Lucky&ie=UTF-8&oe=UTF-8&q=
Browse By Name
  http://www.google.com/search?ie=UTF-8&sourceid=navclient&gfns=1&q=
Google search(通常の Google 検索)
  http://www.google.com/search?ie=UTF-8&q=
Yahoo!検索
  http://search.yahoo.co.jp/search?ei=UTF-8&p=

Go ボタンの削除

browser.urlbar.hideGoButton=false
browser.urlbar.hideGoButton=true
Firefox 2ではロケーションバーと Go ボタンが一体化したために、従来のようにツールバーのカスタマイズでは Go ボタンを非表示にできません。以下の変数を true にすると Go ボタンを非表示にできます。

browser.urlbar.hideGoButton <真偽値>

拡張機能のバージョンチェックを回避

Firefox 2に対応していない拡張機能でも、実際には動作するケースが多くあります。拡張機能のバージョンチェックを無視して強制的にインストールするときは以下の変数を false にします。ただし、対応していない拡張機能とインストールすると、Firefox が正常に動作しなくなるケースもあるので注意が必要です。

extensions.checkCompatibility <真偽値>

また、MR Tech Local InstallNightly Test Tool などの拡張機能をインストールするとバージョンチェックを回避して拡張機能をインストールすることができるようになります。

外部エディタによるソース表示

デフォルトではウェブページのソース表示は専用ウィンドウ内への表示となりますが、以下の変数の設定により外部ツールによる表示が可能となります。<文字列>には外部ツールのパスを設定します。

view_source.editor.external <真偽値>
view_source.editor.path <文字列>

ソース表示で長い行の折り返し表示

デフォルトではウェブページのソース表示は長い行でも折り返し無しで表示されますが、以下の変数の設定を true 設定することにより折り返し表示することができます。

view_source.wrap_long_lines <真偽値>

サブウィンドウのロケーションバーを常に表示する

サブウィンドウのロケーションバーがが常に表示されるようにするには、以下の変数を true にします。

dom.disable_window_open_feature.location <真偽値>

ロケール(言語)の設定

英語版 Firefox をインストールして、後から日本語言語パック(JLP)をインストールした場合、UI を日本語表示にするには以下の変数を ja に設定する必要があります。JLP をインストールしていなくても、拡張機能に日本語ロケールが含まれていればk拡張機能部分だけは日本語表示となります。

general.useragent.locale <文字列>

同様の設定は、起動オプションの -UILocale ja や、Locale Switcher などの拡張機能でも可能です。

その他の情報が入手できるサイトを示します。


ユーザスタイルシートによるカスタマイズ(1)

最終更新: 2008年11月21日(金) 22時1分

コメント (12)

1 1/12 10:49 ちゃど
(c1) [2007/01/12 10:49:20] by ちゃど

このページを見て、初めて試してみようとするヒト達のために

> prefs.js と user.js
user.js を置いてアプリケーションを起動し、一度 prefs.js に上書きされた
設定情報は、その後 user.js の記述や user.js そのものを取り除いても
prefs.js に残り続ける可能性のある(現状はほぼすべてが残る)ことが 一言あって
もよいと思います。

> 拡張機能のバージョンチェックを回避
種々の事情によってアプリケーションのバージョンアップに追従できていない拡張
が数多く存在する昨今、この手の回避策にニーズがあることは確かでしょう。一方で、
ご存知のように、拡張インストール時のバージョンチェックは、本来、互換性の
ない(確認されていない)拡張をインストールすることによるトラブルを回避する
ために設けられているものです。そのバージョンチェックを(アプリケーション側で)
元から無効化することは、それ相応のリスクを伴う行為であることは明示しておいた
方がよいと思います。

# 余計なお世話かとは思いますが、ちょっとひっかかったので、コメントしてみました。

2 1/12 11:28 ロッキー
(c2) [2007/01/12 11:28:41] by ロッキー

ちゃど様の > prefs.js と user.jsは私もそう思います。

> 拡張機能のバージョンチェックを回避に関しても
対応していない拡張でも実際正常に動作するケースは多いと言っても
まだまだ動かない拡張も多いです。
なので、「あまり推奨されません」と最後に一言必要ではないでしょうか。

3 1/12 12:13 level
(c3) [2007/01/12 12:13:16] by level

ありがとうございます。指摘部分はあとで修正しておきます。
prefs.jsとuser.jsの関係は、構想段階では入れようと思っていたはずなんですが、漏れてました ;-)

なお、近日中に、「ユーザスタイルシートによるカスタマイズ」も公開予定です。

4 1/12 14:17 釣られ人
(c4) [2007/01/12 14:17:06] by 釣られ人

Windows Vista のプロファイルフォルダの場所
C:\Users\<ユーザ名>\AppData\Roaming\Mozilla\Firefox

5 1/12 22:47 ロッキー
(c5) [2007/01/12 22:47:38] by ロッキー

「ユーザスタイルシートによるカスタマイズ」楽しみにしてます^^

6 1/13 16:57 Shadow912
(c6) [2007/01/13 16:57:03] by Shadow912

「prefs.js と user.js の関係」の項目のラストが「デフォルトんびもどすことも」となっております。
「デフォルトに戻すことも」かな?

#最初に見たときに「ん?」と思って、凝視してなんかツボに入ってしまったw

7 1/14 00:33 通行人
(c7) [2007/01/14 00:33:00] by 通行人

>prefs.js を書き換えるのではなく user.js を用いるほうが良いでしょう。
>なお、これらのファイルはかならず UFT-8 形式で保存してください。
此の部分ですが、UTF-8でUnicodeヘッダは無しだと書いた方が良いかと。
#つか、良く見たらUFT-8になってますね。気付いたので一応指摘しておきます。

8 1/14 01:05 Shadow912
(c8) [2007/01/14 01:05:05] by Shadow912

通行人さん wrote:
> 此の部分ですが、UTF-8でUnicodeヘッダは無しだと書いた方が良いかと。

Unicodeヘッダというより UTF-8 の BOM なし(いわゆる UTF-8N)ですね。
ですが、初心者な人や UTF、Unicode を知らない人にとっては
「なんのこっちゃ?」でしょうし、具体的に注意喚起すると、

「(日本語まじりの場合)Windows XP のメモ帳(notpad.exe)ではダメです」

といったところでしょうか。

#厳密に言うと? user.js の最初の行をコメント行にしておくと、
#Windows XP のメモ帳でもいけるのかも?試してませんが
#Vista のメモ帳?で BOM なし UTF-8 が書き出せるかどうかは知りません

9 1/14 10:28 level
(c9) [2007/01/14 10:28:47] by level

私がWin-XPで試してみた限りでは日本語入りのuser.jsはBOM有り無しでどちらでも問題ありませんでした。
また、メモ帳の読み込みはBOM有り無しどちらでもOK、出力は常にBOM有りとなりました。

10 1/14 10:33 level
(c10) [2007/01/14 10:33:04] by level

Firefoxのprefs.js出力は常にBOM無しのUTF-8のようです。

結論としては、UTF-8であればBOM有り無しは気にしなくて良いということだと思います。

11 1/14 17:16 釣られ人
(c11) [2007/01/14 17:16:49] by 釣られ人

>Shadow912
Vistaのメモ帳で保存時に指定できるのは
ANSI、Unicode、Unicode big endian、UTF-8の選択のみ。
BOM有りだと思われ。

12 8/13 16:39 333
(c12) [2013/08/13 16:39:18] by 333

古い情報なら冒頭に書くべき。

こんなページが上部に出てくるGoogleが悪いんだけどね。

トラックバック

トラックバックは検索対象外です。

この記事にリンクしているページ < >

  1. [817] http://yohshiy.blog.fc2.com/blog-entry-82.html
  2. [602] http://www.clear-code.com/blog/2014/3/27.html
  3. [54] http://oshiete.goo.ne.jp/qa/5476689.html
  4. [50] http://jutememo.blogspot.jp/2014/03 ... nia-aboutconfig.html
  5. [42] http://oshiete.goo.ne.jp/qa/8071109.html
  6. [36] http://d.hatena.ne.jp/wantora/20110807/1312683973
  7. [22] http://longurl.org
  8. [22] http://oshiete.goo.ne.jp/qa/5453868.html
  9. [16] http://oshiete.goo.ne.jp/qa/8085745.html
  10. [13] http://asiamoth.com/mt/archives/2008-09/05_2349.php
  11. [13] http://forums.mozillazine.jp/viewtopic.php?p=24799
  12. [10] http://www.clear-code.com/blog/category/mozilla.html
  13. [9] http://konnan.blog96.fc2.com/blog-entry-254.html
  14. [9] http://nonbei.hatenablog.jp/entry/2014/10/14/083426
  15. [6] http://okwave.jp/qa/q8071109.html
  16. [6] http://relaxedcolumn.blog8.fc2.com/blog-entry-92.html
  17. [5] http://d.hatena.ne.jp/ico01/20090202/p1
  18. [5] http://okwave.jp/qa/q7387976/a20573121.html
  19. [4] http://okwave.jp/qa/q8085745.html
  20. [3] http://okwave.jp/qa/q5476689/a15917689.html
  21. [3] http://okwave.jp/qa/q7387976.html
  22. [3] http://q.hatena.ne.jp/1205008885
  23. [3] http://soudan1.biglobe.ne.jp/qa8071109.html
  24. [3] http://yohshiy.blog.fc2.com/?tag=ブラウザ
  25. [2] http://asiamoth.com/mt/archives/2008-08/13_2352.php
  26. [2] http://d.hatena.ne.jp/imagawa_and_ore/20070908/1189267968
  27. [2] http://d.hatena.ne.jp/kotas/20081003/favlist
  28. [2] http://d.hatena.ne.jp/wantora/touch/20110807/1312683973
  29. [2] http://htn.to/6ey3Yq
  30. [2] http://jutememo.blogspot.com/2014/0 ... nia-aboutconfig.html
  31. [2] http://jutememo.blogspot.jp/2014/03 ... t&utm_medium=twitter
  32. [2] http://kanonji.blog4.fc2.com/blog-entry-140.html
  33. [2] http://oshiete.goo.ne.jp/qa/5058102.html
  34. [2] http://oshiete.goo.ne.jp/qa/5058102.html?from=rfqa_no
  35. [2] http://oshiete1.nifty.com/qa8085745.html
  36. [2] http://q.hatena.ne.jp/1166334979
  37. [2] http://soudan1.biglobe.ne.jp/qa8085745.html
  38. [2] http://ziddy.japan.zdnet.com/qa7411148.html