- 三年前にFirefox3.5がリリースされたときもチャレンジして失敗したのだけど、ニコニコ動画用に使っているFirefoxを3.6から8.0にアップグレードしたら、想像以上の変わりようだったので思い切って再チャレンジしてみることに。
要件
Ctrl+Shift+FでWeb検索
- http://mozilla.dorando.at/からkeyconfig.xpiを導入
- 設定画面にて、Web検索をCtrl+Shift+Fに設定すればOKと思ったら、思わぬ落とし穴が。これだと、単にWeb検索窓にフォーカスが移るだけだった。
- Moon BrowserのCtrl+Shift+Fは、Web検索窓が表示された時点でクリップボードの内容が表示されている状態。これが便利で重宝しているのでなんとかしたい。
- PasteSearchにキーボードショートカットを割り当て
- PasteGoを導入すると使える機能で、対応するコマンドはpastego.onPasteSearch()
- Keyconfigでキーボードショートカットを割り当てればOKだがなんか違う。これだと、クリップボードの内容を元に検索して、その結果が表示されてしまう。
- まあ、前者の方法でWeb検索窓に移動してからCtrl+Vで貼り付けるか、後者の方法で検索エンジンの窓からキーワード修正すればよいだけなのだが...しばらく保留。もうちょっと悩んでみることに。
- ところで、長らくこういうキーの探し方が分からなかったけど、DOM Inspectorというツールを使えばよいと知ったのが収穫でした。Scancodeを調べるときの窓使いの憂鬱と同じような感じですが、非常に便利。使い方はこちらが参考になります。
タブが端で折り返して表示される
- ツリー型タブを無効化した状態で、Tab Mix Plusの表示 -> タブバーで設定すればOK
- 各所のレイアウトが変わっているので、縦がよいか横がよいかは悩みどころですな。
検索バー(Ctrl+F)のトグル
- 専用のアドオンがありました。あちこちで言われてるけど、これはシステム側で対応すべきだろう。
- https://addons.mozilla.org/ja/firefox/addon/toggle-find-bar/
前後のタブに移動するキーボードショートカット
- 同様の主旨のアドオンは存在するので、導入自体は簡単。しかし、どちらの方法を使ってもスムーズに動いてくれない。システムデフォルトのCtrl+PGUP/PGDNだと問題なく動くので、アドオン側でフックしているところがボトルネックになっていると想像。できれば、直接設定ファイルを書き換えてしまいたいところ。
- Single Key Tab Switchを使う方法
- Keyconfigで新規のキーアサインを追加する方法
- タブを一つ右に移動 gBrowser.mTabContainer.advanceSelectedTab(1, true);
- タブを一つ左に移動 gBrowser.mTabContainer.advanceSelectedTab(-1, true);
- こちらはキーボードショートカットをカスタマイズするアドオンだが、肝心の機能が対象にないし、新規の定義とかは出来ないらしい。
- Customizable Shortcuts
ブックマークサイドバーをF1でトグル
- ブックマークだけじゃなくて、ダウンロードについても同様の話が出てくるので、まとめて対応できるAll-in-One Sidebarで対応。
URLを抽出してIrvineと連携する機能
- 前回諦めた最大の原因だが、今回も同じ結論になった。定番のDownThemAll!!、URL抽出系アドオン、外部ソフトも調べたけど、どうにもうまくいきません。orz
- 仕方ないので、このためだけにMoon Browserを起動することになりそう。
プロファイルの分離
経緯
- 自分の使い方はこんな感じ。それぞれ全く違う用途なのでcookieや設定も共有していない方が望ましい。そんな事情もあって、左側はIE(Trident)、右側はFirefoxという棲み分けで長らくやってきました。
- とはいえ、ここに来て、IE8ベースのTridentはスクリプト処理が遅いし、まともに表示できないページが増えてきたし、WindowsXPではIE9はリリースされないし、将来Windows7にしてもMoon BrowserはIE9ではまともに動かないようだし、一方でFirefox8は異様に軽くて速いしという事情が重なったので、一念発起してアップグレードを図ったのはよいけど、これら二つは用途が明確に違うので、ポリシーも構成も異なるのでプロファイルの分離が必須。
- 当初考えたのは、Firefoxと完全互換を謡っているPaleMoonをメインにして、サブをそのままFirefoxにする構成。しかし、やってみると一部のアドオンが動かないし、言語パックも微妙におかしい。更に、新興勢力なのでいつまでプロジェクトが続くのかも怪しい。そんなことを考えると、メインブラウザに採用するのはちょっと怖い。
- そんな経緯からFirefoxのプロファイルを分離するという未知の作業に進み出したけど、なんとかなりそうなところまでは持ってこれたので良かった。:-)
事前準備
- Profile Manager
- 本来のプロファイルの場所
- 今後のプロファイルの場所
基本作業
- 未知の作業だったが、プロファイルの移項作業自体はあっさりと終了。デフォルトのプロファイルは%APPDATA%配下に残したまま、コピーする形で別のドライブに2つのプロファイルを作成。
- 起動用のショートカットを作成して起動しようとしたところで問題発生。1番目は起動するが、2番目と3番目が起動しない。
- E:\...\DropMyRights.exe "C:\Program Files\Mozilla Firefox\firefox.exe"
- E:\...\DropMyRights.exe "C:\Program Files\Mozilla Firefox\firefox.exe" -p "main" -no-remote
- E:\...\DropMyRights.exe "C:\Program Files\Mozilla Firefox\firefox.exe" -p "sub" -no-remote
権限降格(DropMyRights -> psexec -l -d)
- ここ数年、マルウェア対策としてブラウザやメールソフトはDropMyRightsで権限降格させた上で起動させています。当初はいろいろ面倒だったけど、今となってはAdminstrator権限でブラウザを動かすなど恐ろしくて出来ないので、これは運用上必須。
- この原因は、おそらくDropMyRightsがfirefox.exeに対する引数を処理できていないことによると思われる。DropMyRightsに手を入れるのは難しいので、代替手段としてsysinternalsのpsexecを利用してみました。
使用法: psexec [\\<コンピューター>[,<コンピューター2>[,...] | @<ファイル>][-u <ユーザー> [-p <パスワード>]][-n s][-l][-s|-e][-x][-i [<セッション>]][-c [-f|-v]][-w <ディレクトリ>][-d][-<優先度>][-a n,n,... ] cmd [<引数>]
-l (Administrators グループを削除して、Users グループに割り当てられている特権のみを許可する) 制限付きのユーザーとしてプロセスを実行します。Windows Vista では、プロセスは低い整合性で実行されます。
-d アプリケーションが終了するのを待ちません。このオプションは、非対話型のアプリケーションにのみ使用します
- psexecによる権限降格を組み込んだショートカット
- E:\...\PsExec.exe -l -d "C:\Program Files\Mozilla Firefox\firefox.exe" -p "main" -no-remote
- E:\...\PsExec.exe -l -d "C:\Program Files\Mozilla Firefox\firefox.exe" -p "sub" -no-remote
-no-remoteオプション
- 一見うまくいっているので油断したら、今度は別の問題が。メールソフト上でクリックしたURLをFirefoxで開けない。たまたまメールソフトで気づいたけど、V2CやSaezuriでも同じ問題は起こるだろう。具体的な症状はこちらの通り。
複数の異なるプロファイルを使用してFirefoxを同時起動する事ができる。
Firefox.exe -no-remote -p 別プロファイル名1
Firefox.exe -no-remote -p 別プロファイル名2
Firefox別バージョン.exe -no-remote -p 別プロファイル名3起動するFirefoxのバージョンは異なっていても使用プロファイルが異なっている限りにおいて幾つでもメモリの許す限り同時起動できる。ただし, -no-remote 付きで起動されたものに対しては, 外部からリンクを渡してそれを開くことができない。従って, このような使い方をしていて, かつ外部からリンクを渡してそれを開きたい場合は, どれか一つは -no-remote無しである必要がある。
- 分離したプロファイルを完全な状態で指定するためには-no-remoteが必須らしい。これを外すと起動はできるが、おかしいことになる。仕方ないので、Firefoxインストール時に標準で作られるプロファイルを削除。mainをデフォルトに指定して、-no-remote無しでも起動できるようにしてみました。-p "main"はなくてもかまわないが、念のため。
- E:\...\PsExec.exe -l -d "C:\Program Files\Mozilla Firefox\firefox.exe" -p "main"
- E:\...\PsExec.exe -l -d "C:\Program Files\Mozilla Firefox\firefox.exe" -p "sub" -no-remote
-new-tab
- さて、今度は別の問題が発生。メールソフトからFirefoxを呼び出す場合、以下の動作を期待したい。
- しかし、このままだと、常に新規のFirefoxが起動してしまう。回避するためには、コマンドライン引数として新しいタブとして開くというのを明示してやればよさそう。
new-window
Loads a URL in a new browser window. firefox.exe -new-window
new-tabLoads a URL in a new tab. firefox.exe -new-tab
- 結論として、メールソフトには以下の文字列を渡すことに。
- E:\...\PsExec.exe -l -d "C:\Program Files\Mozilla Firefox\firefox.exe" -new-tab
- V2Cについてはこれ。
- E:\...\PsExec.exe -l -d "C:\Program Files\Mozilla Firefox\firefox.exe" -new-tab "$LINK"
- インターネットショートカット
- E:\...\PsExec.exe -l -d "C:\Program Files\Mozilla Firefox\firefox.exe" -new-tab %1
- DDEはdisableしても勝手にenableされるから関係ないのだろうか。
- 再インストールのたびに手動で設定するのは大変なので、レジストリ登録用ファイルはこんな感じで。
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\http\shell\open]
[HKEY_CLASSES_ROOT\http\shell\open\command]
@="E:\\...\\PsExec.exe -l -d \"C:\\Program Files\\Mozilla Firefox\\firefox.exe\" -new-tab %1"
[HKEY_CLASSES_ROOT\http\shell\open\ddeexec]
[HKEY_CLASSES_ROOT\http\shell\open\ddeexec\Application]
@="PsExec"
[HKEY_CLASSES_ROOT\http\shell\open\ddeexec\Topic]
@="System"
- Saezruriはどうしようもなさそう...と思っていたら、自動的に解決していた様子。ここまで書いて気づいたが、最大の難関はxyzzyのclickable-urlなのかも。
外見
システムフォントを小さくする
- userChrome.css
- ある程度以下には小さくできないのか、うまく設定が反映されていないような...
{
font-size: 9pt !important;
}
menupopup > * {
font-size: 9pt !important
ブックマークメニューの幅を狭くする
- userChrome.css
#bookmarks-ptf toolbarbutton menupopup menuitem,
#bookmarks-ptf toolbarbutton menupopup menu,
#bookmarksBarContent toolbarbutton menupopup menuitem,
#bookmarksBarContent toolbarbutton menupopup menu,
#bookmarks-menu menupopup menuitem,
#bookmarks-menu menupopup menu,
#bookmarksMenu menupopup menuitem,
#bookmarksMenu menupopup menu,
#bookmarks-chevron menupopup menuitem,
#bookmarks-chevron menupopup menu,
#pof-menu menupopup menuitem,
#pof-menu menupopup menu,
#PlacesToolbarItems toolbarbutton menupopup menuitem,
#bookmarks-menu-button menupopup menuitem
{
max-width: 15em !important;
}
#bookmarks-ptf > toolbarbutton > menupopup > menuitem,
#bookmarks-ptf > toolbarbutton > menupopup > menu,
#bookmarksBarContent toolbarbutton > menupopup > menuitem,
#bookmarksBarContent toolbarbutton > menupopup > menu,
#bookmarks-menu > menupopup > menuitem,
#bookmarks-menu > menupopup > menu,
#bookmarksMenu > menupopup > menuitem,
#bookmarksMenu > menupopup > menu,
#bookmarks-chevron > menupopup > menuitem,
#bookmarks-chevron > menupopup > menu,
#pof-menu > menupopup > menuitem,
#pof-menu > menupopup > menu,
#PlacesToolbarItems > toolbarbutton > menupopup > menuitem,
#bookmarks-menu-button > menupopup > menuitem
{
max-width: 15em !important;
faviconを表示させない
- userChrome.css
/* ブックマーク内のアイコン(フォルダ以外)を消す
* http://firefox.geckodev.org/?FAQ#v8949756 */#bookmarks-menu menuitem.bookmark-item > .menu-iconic-left
{visibility: hidden !important;}
#bookmarks-menu menuitem[class="menuitem-iconic bookmark-item"] .menu-iconic-left
{visibility: hidden !important;}/* ブックマークツールバーのファビコン(フォルダ以外)を消す
* http://firefox.geckodev.org/?FAQ#v8949756 */#PersonalToolbar .bookmark-item:not([container="true"]) .toolbarbutton-icon
{display:none !important;}
#PersonalToolbar menuitem.bookmark-item > .menu-iconic-left
{visibility: hidden !important;}
#PersonalToolbar menuitem[class="menuitem-iconic bookmark-item"] .menu-iconic-left
{visibility: hidden !important;}/* サイドバーのブックマーク等のアイコン(フォルダ以外)を消す
* http://firefox.geckodev.org/?FAQ#v8949756 */#bookmarks-view treechildren::-moz-tree-image(leaf) ,
#history-panel treechildren::-moz-tree-image(leaf)
{
list-style-image: none !important;
width: 0px !important;
height: 0px !important;
margin: 0px !important;
}
その他
描画開始のタイミング
- users.js
- user_pref("nglayout.initialpaint.delay", 0);
IEでいう「Webサイトを表示するたびに確認する」の設定
- この設定を忘れたが故に何度コンテンツが消失したことか...
表示された[browser.cache.check_doc_frequency]をダブルクリックして値入力ダイアログを表示し、以下の中から希望する更新確認方法に応じた0-3の数値を入力してOKをクリックする。
<選択肢>
0-セッションごとにページの更新を確認する。
1-ページにアクセスするたびに更新を確認する。
2-ページの更新を確認しない。
3-ページの期限が切れている場合に更新を確認する。(デフォルト)
Fireboot - Firefox N®¬»c[
- Firebootのバージョンが上がっていました。プロファイル毎に最適化もできるし、確実に速くなるのが素晴らしい。
- しかし、途中で手詰まりとか言われても困るぞ。
方法 2:.NET Framework Assistant for Firefox を削除する
拡張機能のレジストリ キーを削除します。これを行うには、次のいずれかの方法を使用します。
reg DELETE "HKLM\SOFTWARE\Mozilla\Firefox\Extensions" /v "{20a82645-c095-46ed-80e3-08825760534b}" /fFirefox ユーザー エージェントで、手順 1. の変更をリセットします。これを行うには、次の手順を実行します。
Firefox を起動して、Firefox のアドレス バーに「about:config」と入力します。
下方向にスクロールするか、[フィルター] を使用して、ユーザー設定項目を検索します。
general.useragent.extra.microsoftdotnet?この項目を右クリックし、[リセット] をクリックします。
Firefox を再起動する.NET Framework の拡張ファイルを削除します。これを実行するには、以下の手順を実行します。
rmdir /s /q "c:\Windows\Microsoft.NET\Framework\v3.5\Windows Presentation Foundation\DotNetAssistantExtension"
- 手順通りにやってもうまく削除できないので、強制的に削除するバッチファイルを作った。OS再インストールして一段落したところで、一度だけ実行すれば済むはず。
reg DELETE "HKLM\SOFTWARE\Mozilla\Firefox\Extensions" /v "{20a82645-c095-46ed-80e3-08825760534b}" /f
pause
rmdir /s /q "c:\Windows\Microsoft.NET\Framework\v3.5\Windows Presentation Foundation\DotNetAssistantExtension"
アドオン
- 気がついたらかなりの量のアドオンが入ってるな...
アプリケーション: Firefox 8.0 (20111104165243)
OS: WINNT (x86-msvc)
- Add Bookmark Here 2 4.0.20111106
- Add-on Compatibility Reporter 0.9.3
- All-in-One Sidebar 0.7.14 (互換性無し)
- BetterPrivacy 1.67
- Cache Status 0.7.10 (互換性無し)
- CipherFox 3.4.1 (互換性無し)
- Classic Compact Options 4.0.9.1
- Customizable Shortcuts 0.5.8
- DOM Inspector 2.0.10
- Double Click Closes Tab 0.21
- Download Statusbar 0.9.10
- Extension List Dumper 1.15.2
- FEBE 7.0.2
- HTTPS Finder 0.77
- keyconfig 20110522 (互換性無し)
- Mark Unsecured Password Elements 1.02 (互換性無し)
- NoScript 2.2
- pastego 2.0.4 (互換性無し)
- Single Key Tab Switch 0.2.5 (無効, 互換性無し)
- SQLite Optimizer 0.7.7 (互換性無し)
- Tab Mix Plus 0.3.8.6 (互換性無し)
- Toggle Find Bar 0.1.1
- UnMHT 5.7.2
- ツリー型タブ 0.12.2011082901 (互換性無し)
- テキストリンク 4.0.2011021601 (互換性無し)
課題
- Web検索
- キーボードショートカット
- タブのアイコンを削除する方法
- 外部アプリとの連携を検証
- ブックマークからまとめて開くと空白タブが残ってしまう点の回避策
- 折角なので、ブックマークも一からリセットしてみましょうか。