記事本文
user.js にて追加した設定を削除したい→ハマる
Copy URL+ 1.3.2 のまとめ。導入からバグへの対処、カスタマイズの例まで。に、
一度user.jsに記入した後、再度記入したコードを少なくして他のを付け足したら・・右クリックで付け足したものと以前のもの全部表示されてしまいます。最初に記入したものを記憶させないようにするにはどうすればいいのでしょうか?
というリプライが寄せられました。
user.js の作成と注意点で user.js への設定の追加については書いていましたが、設定の削除については書いていなかったですね。
( というか、設定を削除するという状況を考えたことがなかったので、想定外の質問でした。 )
質問をいただいた時点では 「 user.js の記述を削除して、 Firefox を再起動すればいいんじゃないかなあ」 と思って実際に試してみたのですが、 Firefox を再起動してもコンテキストメニューから項目が消えません。 でも user.js 内には記述が残っていません、うむむ。
と思っていると、
コメントがちゃんと反映されたようですので、再度詳しく投稿します。2重投稿になります一度user.jsに15項目ほど自作して記入、firefoxに反映させたのですが、項目が多すぎて見にくいなぁ・・と思ったので、以前記入したコードを省略して、他のを付け足してfirefoxに反映させたら・・2回目に付け足したものと、以前記入したものが全部表示されてしまうんです。1回目に記入したものを、prefs.js?に記憶させないようにするにはどうすればいいのでしょうか?
という追加コメントが。
そうか prefs.js にも設定内容が残るんでした ! user.js で設定した内容は prefs.js に記録される というのは以前目にしていたことがあるので、 user.js と prefs.js の該当部分を削除して上書き保存してみました。
で、 Firefox を再起動してもコンテキストメニューから項目が消えません。 でも user.js 内には記述が残っていません、 prefs.js には記述が残っています、うむむ。
もったいぶっても何なので先に参考リソース
まあこの後色々試して正解に行き着くわけですが、それを事細かに書いても冗長になるだけなので、正解というか参考リソースを羅列します。
- user.js - Mozilla Firefox まとめサイト
- Tips:えむもじら - user.js による設定
- prefs.js と user.js
- ブルーライトノヴァ - Firefox - prefs.js/user.js
各リソースを読んでいただきたいのですが、簡単にまとめると
- user.js の記述を削除またはコメントアウトし、上書き保存
- Firefox を一旦終了させる
- prefs.js 内の同様の記述を削除し、上書き保存
- Firefox を起動
または
- user.js の記述を削除またはコメントアウトし、上書き保存
- about:config で該当する値のリセット
- Firefox を再起動
という手順になります。
私がどこでハマったのか
さて、これらの手順と、冒頭で私がハマった手順のどこに違いがあるのでしょう ? 手順をおさらいしてみましょう。
| 失敗した手順 | 正しい手順 |
|---|---|
| user.js の記述を修正し、保存する | Firefox を終了させる |
| prefs.js の記述を修正し、保存する | user.js の記述を修正し、保存する |
| Firefox を終了させる | prefs.js の記述を修正し、保存する |
| Firefox を起動する | Firefox を起動する |
表にすると分かりやすいですが、 prefs.js はオプション画面または、about:configからの設定の変更後即座に、現在の設定を prefs.js に書き込み(デフォルト値から変更されているもののみ)
され、また
アプリケーション起動中に prefs.js を編集しても、終了時に上書きされて
しまうため、 Firefox を起動した状態で prefs.js を直接編集しても、 Firefox の終了時に直接編集した部分は無効になります。
user.js と prefs.js の編集
今回は prefs.js を直接編集していますが、間違って削除してはいけない指定を削除してしまわないように、 about:config から個別に修正するようにした方がいいかもしれません。
また、 user.js は
- Firefox 起動時の動作
- デフォルトの設定を読み込み
- prefs.js を読み込み
- user.js を読み込み
のような動作をするため、 user.js の記述を残している限り、 prefs.js を直接編集したり、 about:config で設定したりしても、次回の起動時にその記述を再度適用することになります。
ブルーライトノヴァ - Firefox - prefs.js/user.js にて
少々の変更ならば GUI 経由、または prefs.js の編集を、永続しておきたい設定は user.js に記述すると良いのではないでしょうか
と書かれてあるように、それぞれのファイルの特性を理解した上で設定の追加・削除を行うようにするといいと思います。
というか、今回のリプライのおかげで私もこの特性を理解することができました。 ともさん、ありがとうございます !

