SleipnirからFirefoxへの移行記
カスタマイズ性に優れたFirefoxの魅力にとりつかれたのと、Linuxデスクトップを使い始めたという理由で、SleipnirからFirefoxへの移行を果たした。
完全には似せられなかったけど概ね満足できたので、同じように移行を検討している人のためにもメモっておくことにする。
なお、Sleipnir自体もまた柔軟性が高く、あくまで自分にとっての使用感を再現することを目的としているのでその点はご留意いただきたい。
どんな機能をどうやって実現したかという感じで書いておくので、必要な部分をピックアップしてもらえればよいかと。
操作性に関してはわりとわがままなので長くなってしまったが、どうぞ。
必須の機能/動作
- 現在のタブのURLをクリップボードにコピーする(Ctrl+Shift+U)
- 現在のタブのタイトルをクリップボードにコピーする(Ctrl+Shift+T)
- 現在のタブのタイトルとURL(タイトル\nURL\n)をクリップボードにコピーする(Ctrl+Shift+C)
- 現在のタブのタイトルとURLからリンクタグを作成してクリップボードにコピーする
userChrome.jsとkeyconfigで対応した。
keyconfigはバージョンチェックに引っかかったのでinstall.rdfを書き換えて無理矢理入れた。今のところ問題は起きていない。
userChrome.jsの方はcopy-url-lite-y1.uc.jsとしてまとめた。コンテキストメニューに出てくる。
keyconfigはこんな感じに。
Components.classes["@mozilla.org/widget/clipboardhelper;1"] .getService(Components.interfaces.nsIClipboardHelper) .copyString(window._content.document.location.href);
copyString()の中を適当にいじってバリエーションを作る。
- 最近閉じたページを開く(Ctrl+L、Ctrl+Shift+Z)
- 連続して次々復元できること
- ヒストリも復元
- URLの含まれるテキストをペーストするとタブで開く(Ctrl+Shift+V)
- 複数のURLが含まれていたらまとめて開く
- 関係ないテキストが含まれていてもURLのみ抽出して開く
- ttp://みたいなURLも開く
- タブの位置をドラッグで入れ替える
- フォームの入力内容を記憶しないようにする
- アドレスバーの入力内容を記憶する
- 検索バーの入力内容を記憶する
普通にできた。
- 特定のURLに対してスクリプトを実行
Greasemonkeyで可能。
- 特定のURLに対して独自のCSSを適用
Stylishで可能。
- 選択範囲を検索エンジンで開く(Ctrl+Shift+F)
ショートカットだけでよかったので、keyconfigで対応。
if (document.commandDispatcher.focusedWindow.getSelection()) BrowserSearch.loadSearch(document.commandDispatcher .focusedWindow.getSelection().toString(), true);
- 選択範囲をURLとしてタブを開く(Ctrl+J)
Text Linkで可能。ショートカットは割り当ててない。
- 選択範囲に含まれるリンクをすべて開く(Ctrl+G)
Linkyで可能。ショートカットは割り当ててない。
- リンクを新規タブで開く
- 中クリックおよびShift+左クリックでできるとよい
- アドレスバーは同じタブで開く
- アドレスバーから新規タブで開く方法もある(Shift+Enterとか)
- アドレスバーでリストから選択しただけでは開かない
マウスだと選択した瞬間にアクセスしてしまうが、キーボードなら左右で回避できそう。
- ブックマークは新規タブで開く
- ツールバー上のブックマークも新規タブで開く
- タブを多段表示する
Tab Mix Plusで可能。
Firefoxのデフォルトっぽい。
- アドレスバーへフォーカスを移すショートカット(Alt+D)
標準でAlt+DとCtrl+Lに割り当てられている。
- 検索バーにフォーカスを移すショートカット(Alt+S)
- ページ内検索バーにフォーカスを移すショートカット(Ctrl+F)
標準でCtrl+Fに割り当てられている。
- 起動時に前回の終了状態を復元する
- 各タブのヒストリも復元
- 次のタブを表示するショートカット(F3、Ctrl+PageDown、Ctrl+Tab)
- 前のタブを表示するショートカット(F2、Ctrl+PageUp、Ctrl+Shift+Tab)
- 次へ進むショートカット(Alt+Right)
- 前へ戻るショートカット(Alt+Left)
- タブを閉じるショートカット(Ctrl+W、Ctrl+F4)
F3とF2以外は標準でそうなってたかも。F3とF2はまぁいいや。
- 各種メニューを編集(不要な項目を消したり、機能を追加したり)
- UserAgentの変更
- ページをスクロールも含めてキャプチャ
- キーカスタマイズ
keyconfigで可能。
- マウスゼスチャ
- 下右で閉じる
- 上左で上の階層を開く
- 上下でリロード
- 左ボタン→右ボタンで次へ進む
- 右ボタン→左ボタンで前へ戻る
All-in-One Gesturesで可能。
しかし現在はuserChrome.js軽量マウスジェスチャに乗り換えた。
上の階層はスクリプトを追加して対応した。
// ひとつ上の階層のURLを取得する // http://d.hatena.ne.jp/iNo/searchdiary?word=*%5BuserChrome.js%5D _action_getParentURL: function(url) { var matches, origUrl = url; matches = url.match(/(^.*\/)(.*)/); if(!matches) { return null; } url = matches[1]; if(url != origUrl && !/(index|main)\.(php3?|html?)/i.test(url)) { return url; } matches = url.match(/^([^\/]*?:\/\/.*\/)[^\/]+?\//); if(matches) { return matches[1]; } matches = url.match(/([^:]*:\/\/)?(.*)/); var protocol = matches[1], domain = matches[2]; matches = domain.match(/^[^\.]*\.(.*)/); if(matches) { return (protocol + matches[1]); } return null; },
var parentUrl = ucjsMouseGestures._action_getParentURL(_content.document.location.href); if (parentUrl != null) loadURI(parentUrl);
- はてなブックマークに追加
- ニコニコ動画のダウンロード
欲しいけど無ければ我慢できるかもしれない機能/動作
- タスクトレイに入れる
MinimizeToTrayで可能だが、特に必要ではない気がしてきたので入れていない。
- 新規タブは一番右に開く
- タブを閉じたら右隣をアクティブにする
- タブを左ダブルクリックでリロード
- ナビゲーションロック(ページ遷移を禁止して、強制的に新規タブで処理する)
Tab Mix Plusで可能。
- 検索エンジンを複数登録して切り替えられる
標準機能。
検索バーではないがアドレスバーなら標準で備わっている。ブックマークのクイックサーチというところに入っているやつがそう。
ブックマークのキーワード欄に「nico」とか設定して検索URLをブックマークしておけば「nico 文字列」で検索できる。
- 画像、動画、Java、JavaScript、プラグインを個別および一括でタブごとに簡単に切り替えられる機能
- ポップアップブロック、広告ブロック
- ウィンドウサイズやURL正規表現で設定できること
- ブックマークのフォルダ内をまとめて開く
標準機能。
- ブックマークをひとまとめにした機能(お気に入りグループ)
ないけど、フォルダまとめて開ければいい気もする。
- 上の階層へ移動するボタンまたはショートカット(Alt+Up)
- 外部プログラムでソースを開く
- マウスホイールでタブを切り替える
- 右クリック+ホイールで前後に切り替えられるとよい
All-in-One Gestures、軽量マウスジェスチャで可能。軽量マウスジェスチャのほうがSleipnirの動作と同じでよい感じ。
あとTab Mix Plusを入れるとタブバー上のホイールで切り替えられる。
- ページ内の検索でキーワードハイライト
標準機能。
- 名前をつけて保存するショートカット(Ctrl+S)
標準機能。
- MHTかそれに類する手段で1ファイルに保存する機能
mafというエクステンションがあるようだが、2.0では動かない。
- ページ内のリンクを抽出
- クリップボードにコピーとかテキストで保存とか
一発でできるものはないがLinkyの一覧ダイアログでクリップボードにコピーできる。
- ページ内のURLを抽出
- クリップボードにコピーとかテキストで保存とか
なさそう。
無くてもいいけど使いたくなるかもしれない機能/動作
- 開いてるタブのサムネイル一覧
Tab Catalogで可能。
- ダイアログの抑制
なさそうだけど、そもそもActiveX関係の確認ダイアログがうざいのを抑制していただけなので必要ないかも。
- タブの自動更新
- 秒数を指定できること
Tab Mix Plusで可能。
- コメントを表示
Web Developerで可能。
- 選択部分のソースを表示
標準かわからないけど、気がついたらできた。
- 選択文字列を翻訳サービス系のサイトで開く
- サイトの切り替えとか色々設定できるとよい
右クリックから開くわけではないけど翻訳パネルというのが便利でこっちにした。
- 現在のページをGoogleキャッシュで開く
- 現在のページをInternet Archive(web.archive.org)で開く
- 全画面表示(F11)
標準機能。キーも同じ。