rcmdnk's blog

20160302_setcommand_200_200

FirefoxのプラグインであるVimperatorの設定をちょっといじっていたら 今更ながらabout:config設定を.vimperatorrc からする方法を再確認したのでその辺について。

set!

Firefoxではabout:configから 高度な設定変更が出来る様になっていますが、 この設定をVimperatorから

:set! browser.tabs.closeWindowWithLastTab=false

の様にset!を使うとabout:configにある項目を Vimperatorのコマンドモードでセットすることが出来ます。

20160302_setcommand.jpg

こんな感じで補完もされます。

値は真偽値の場合にはtruefalse、文字列や整数値なら そのまま書けばOK。

.vimperatorrcでは

set! browser.tabs.closeWindowWithLastTab=false

の様に書いておけば起動時に反映されます。

ただし、=の左側は空白を入れて空けても良いですが、右側はダメです。

設定項目に関しては

About:config entries - MozillaZine Knowledge Base

が参考になります。

ここにある項目の中でTools Options などと書かれてる項目は環境設定から変更できる項目です。 ただし、ひとつ前の別ウィンドウが出てくるタイプの環境設定だった時の物みたいで、 現在の設定項目と名前や場所が違ったりします。 ですが、大体それに当てはまるものが今の環境設定でも見つかります。

また、一部古かったり無い情報があるのでその場合は適時ググるなど。 (一応上のページも最終更新が15:51, 28 January 2016にはなってるんですが。)

下にも出てくる mousewheel.with_control.action の設定などは上のページだと0が通常スクロールですが、 実際には下に書いてあるとおり、0はdisableで1が通常スクロールになります。

Gecko:Mouse Wheel Scrolling - MozillaWiki

環境設定から設定できる項目

環境設定からいじれる項目もabout:configの設定を変更しているわけですが、 以下に対応する値のメモを載せておきます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
" Settings in Option
" # General
" ## Startup
set! browser.shell.checkDefaultBrowser=true
" 0: Blank page, 1: Homepage, 3: Previous view (not 2)
set! browser.startup.page=1
set! browser.startup.homepage=about:home
" ## Download
" If not set, use default download directory of the OS
set! browser.download.dir=''
set! browser.download.useDownloadDir=true
" ## Tab group
" 1: current tab, 2: in a new window, 3: in a new tab
set! browser.link.open_newwindow=3
set! browser.tabs.warnOnClose=true
set! browser.tabs.warnOnOpen=true
" true: only current tab is loaded at restore, false: 3 pages are loaded
set! browser.sessionstore.restore_on_demand=true
set! browser.tabs.loadInBackground=true

" # Search
set! browser.search.defaultenginename=Google
set! browser.search.suggest.enabled=true

" # Content
" ## Popup
set! dom.disable_open_during_load=true
" ## Font and color
set! font.name.sans-serif.ja=Hiragino\ Kaku\ Gothic\ ProN
set! font.size.variable.ja=15
" ## Language
set! intl.accept_languages=ja,\ en-us,\ en

" # Privacy
" ## Tracking
set! privacy.donottrackheader.enabled=false
set! privacy.trackingprotection.pbmode.enabled=true
" ## History
set! places.history.enabled=true
" 0: Enable all, 2: Disable all
set! network.cookie.cookieBehavior=0
" Following clearOnShutdowns are enabled only when sanitizeOnShutdown is enabled.
set! privacy.sanitize.sanitizeOnShutdown=false
set! privacy.clearOnShutdown.history=true
set! privacy.clearOnShutdown.downloads=true
set! privacy.clearOnShutdown.cookies=true
set! privacy.clearOnShutdown.sessions=true
set! privacy.clearOnShutdown.cache=true
set! privacy.clearOnShutdown.formdata=true
set! privacy.clearOnShutdown.siteSettings=false
set! privacy.clearOnShutdown.offlineApps=false
" ## Location bar
set! browser.urlbar.suggest.history=true
set! browser.urlbar.suggest.bookmark=true
set! browser.urlbar.suggest.openpage= rue

" # Security
" ## General
set! xpinstall.whitelist.required=true
" ## Login information

" # Sync
" ## Synchronize all machines (string?)
set! services.sync.engine.tabs=true
set! services.sync.engine.history=true
set! services.sync.engine.bookmarks=true
set! services.sync.engine.addons=true
set! services.sync.engine.passwords=true
set! services.sync.engine.prefs=true

" # Advanced
" ## General
" ### Accessibility
set! accessibility.browsewithcaret=false
set! accessibility.typeaheadfind=false
set! accessibility.blockautorefresh=false
" ### Browsing
set! general.autoScroll=true
set! general.smoothScroll=true
set! layers.acceleration.disabled=false
" 0: Disable, 1: Enable for multi-line controls, 2: Enable for multi-line controls and single-line controls.
set! layout.spellcheckDefault=1
" ## Data selection
set! datareporting.healthreport.uploadEnabled=true
" ## Update
" ### Firefox's update
set! app.update.auto=true
set! app.update.mode=1
set! app.update.enabled=true
" ### Automatically update following softwares
set! browser.search.update=true
" ### Certification

ちょっと見づらいかもしれませんが、環境設定の各ページと見比べてもらうとどれとどれが わかると思います。 一部抜けてる物もありますが大体カバーしました。

ちょっと注意点として、 環境設定の方では有効にする、みたいに書かれているものが、 about:configだと...disabledとなっていたりするものがあって、 これだと有効にしたい場合はfalseを設定しないといけません。 (普通に...enabledな物もあるし、環境設定の方で無効にするという設定が ...enabledを使ってたりもする。) その辺、言葉にも注意してください。

上の設定は一応全てデフォルトの値になっているはずです。

現在の設定

とかに書いてる物や(一部今無いオプションは削除)、 上の環境設定の中で変更している部分は以下の通り。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
" # Settings in Preferences.
" Don't check to see if the browser is set as default.
set! browser.shell.checkDefaultBrowser=false
" No warnings will be given when closing the browser with more than one tab.
set! browser.tabs.warnOnClose=false
" No warnings will be given when many tabs are opened at once.
set! browser.tabs.warnOnOpen=false
" Do not check if the remote host is on the whitelist or not when installing extensions from remote hosts.
set! xpinstall.whitelist.required=false
" Do not synchronize tabs.
set! services.sync.engine.tabs=false
" Deactivate autoscroll.
set! general.autoScroll=false
" Do not send health report.
set! datareporting.healthreport.uploadEnabled=false

" # Other settings
" Show Google's suggestions in the location bar (default false).
set! browser.urlbar.suggest.searches=true
" Always show the tab bar (default true).
set! browser.tabs.autoHide=false
" Do not close the window when closing last tab. (default true).
set! browser.tabs.closeWindowWithLastTab=false
" Do not warn when about:config is opened. (default true).
set! general.general.warnOnAboutConfig=false
" Ctrl + mousewheel to normal scroll (default 3).
" 0: Do nothing, 1: Scroll Contents, 2: Got back/forward in the history, 3: Zoom in/out
set! mousewheel.with_control.action=1
" Amount of time in milliseconds to disable buttons on security-sensitive dialog boxes (default 2000).
set! security.dialog_enable_delay=0
" Width of caret (cursor) (not in default).
set! ui.caretWidth=2

以下のdotfilesに.vimperatorrcのオリジナルがあります。

rcmdnk/dotfiles/.vimperatorrc

pref/pref!

ちょっと話が逸れますが、 Vimperatorのコマンドラインから

:open about:preferences

とすれば環境設定画面が開けますし、

:open about:config

とすればabout:configが開けますが、

:pref

とするだけでも(または:preferencesとすると)環境設定が、また

:pref!

とするだけでも(または:preferences!とすると)about:configが開けます。

覚えておくとちょっと素早く開ける様になります。

Vimperatorを使わない方法

Vimperatorを使わずに状態を保存する方法としては、 プロファイルフォルダの中にuser.jsというファイルを作ってその中に、

user_pref("browser.tabs.closeWindowWithLastTab", false);

等と、user_prefを書いていく方法があります。

プロファイルフォルダの探し方は以下参照:

プロファイル Firefox ヘルプ

プロファイルフォルダの中にはprefs.jsというファイルがありますが、 こちらは実際にabout:config等で変更した値が入っています。

Firefoxを終了している間にprefs.jsを直接書き換える事で次回から設定変更も可能ですが、 こちらはabout:configとかをいじってると上書きされます。 勿論user.jsの値も起動時にprefs.jsの値を上書きします。

または、Firefox Syncを使って設定を同期指定する方法もあります。

services.sync.prefs.sync.<pref>

と、同期したい値を<pref>に入れた項目を新たにabout:configに作り、 真偽値の値を持つようにしてtrueにします。 そうすると通常同期されない項目でも同期される様になります。

ただ、この方法だと新しい端末でFirefoxを入れた時には この同期の設定のための項目は自分で入れないといけないようです。

なので長いこと使う端末がいくつかあって、それらの間で常に設定を同期したい、 という場合には便利ですが、 新たな環境に設定を移したい、と言う場合には余り使い勝手が良く無いかもしれません。

これらのservices.sync.prefs.sync.user.jsなり.vimperatorrcなりに 書いておいて実際の値は同期してもらう、と言う方法はありかもしれません。

Styleの変更

ついでにVimperatorで設定できるFirefoxの設定として、 見た目も直接いじることが出来ます。

これはVimperator無しで行う場合には プロファイルフォルダの中に chromeというフォルダを作って その中にuserChrome.css、およびuserContent.cssというファイルを作ります。

その中に

.statuspanel-label {display: none;}

の様な見た目を変えるCSS設定を書いてあげると変更することが出来ます。 (この値はuserChrome.css用。)

Mozilla をカスタマイズする: http://www.mozilla-japan.org/unix/customizing.html

UserChrome.css - MozillaZine Knowledge Base

UserContent.css - MozillaZine Knowledge Base

これをVimperatorから行うには

style chrome://* .statuspanel-label {display: none;}

と言った行を.vimperatorrcに加えてやります。

styleコマンドは引数としてまずURLのfilterを取って、その後に そのfilterに該当するURLで適用するCSS設定を書きますが、 chrome://*とすることでFirefox自体の見た目を決めてるCSSの設定になります。

Sponsored Links
Sponsored Links

« Vimの'set'の使い方(イコールの右側だけスペース禁止) MacでKarabinerを使ってAppleScriptをキーボードショートカットに割り当てる »

}