「Firefox」タグアーカイブ

タブを閉じたとき直前に開いていたタブにフォーカスするだけじゃなくなった.uc.js

動作確認

そんなアドオンあったのですが自分が使いたい動作じゃなかったので作ってるとやたら機能が増えて困ってしまったやつ。

開いたり選択するとタイムスタンプを更新していって閉じたときに直前に開いていたタブにフォーカスするというのが基本動作ですが、未読タブがあるときは未読を優先的にフォーカスします。

追加機能としてタブバー上のShift+マウスホイールでタイムスタンプ順に切り替えます。
ただのマウスホイールで普通に切り替えるアドオンとかありそうなのでShift付きです。

さらに、タブ関係のアドオン入れてなくてどのタブが未読か分からなかったので自前でCSS付け足すことも可能になったり、既読タブにもう一度未読属性付け直したりもできます。
flt-unread
CSSサンプルは未読に赤い線付けるような感じです。テーマによってズレまくるので分かる人向け。
簡単に太字とか色を変える程度でも十分ではと。

prefs.jsで新規タブはバックグラウンドで開くようにしてるので(“browser.tabs.loadInBackground”, true)、未読だけ見たいときにそのタブを開いた順番(ここだけ逆順)にフォーカスしていきます。作り込みが甘いので未読関係のは変な動作するかもしれません。

あと、Session store APIを使ってタイムスタンプ等を保存してるのでFirefoxを閉じてもセッション情報が残ってたらタブを開いた順番や未読も次回に持ち越しできます。

セッションを自動で保存するアドオン Session Manager との併用もたぶん大丈夫っぽいです。

ダウンロード: focus-last-tab.uc.js
GitHub: focus-last-tab.uc.js

最近の修正内容とか

Firefoxのタブバー上ミドルクリックで閉じたタブを元に戻すだけ.uc.js

動作確認

Tab Mix PlusやTab Utilitiesは使ってなくてこの機能だけ欲しかったので。
タブ開きすぎるとクリックする場所がないので「新しいタブを開く」ボタンのミドルクリックでも閉じたタブを復元します。

ダウンロード : middle-click-undo-close-tab.uc.js
GitHub : middle-click-undo-close-tab.uc.js

検索エンジンメニューのミドルクリックで検索エンジンを切り替えてさらに貼り付けて検索.uc.js

select-and-paste-and-search
この検索エンジン選ぶメニューのミドルクリックです。分かりづらいです。

動作確認

「検索エンジン切り替え→貼り付けて検索」をするのに「クリック(メニュー出す)→クリック(検索エンジン選択)→右クリック→貼り付けて検索」とわりと手間が掛かるのでそこ一気にやってしまおうというやつです。

ノリで作ったのであまり確認してません。
たぶん同じmenuitem.labelがあると最初のやつになるような気がします。

すでに検索エンジン選択したあとだったら検索エンジンのアイコンをそのままミドルクリックするだけで貼り付けて検索します。

ダウンロード: search-engine-select-and-paste-and-search.uc.js
GitHub: search-engine-select-and-paste-and-search.uc.js

最近の修正内容とか

タブのダブルクリックでピン留め切り替えるだけ.uc.js

動作確認

タブ関連のアドオンは無駄な機能多くて入れたくないけど、ミドルクリックでタブ復元みたいな「これだけ欲しい!」という事が結構あるのですよ。

というわけで、タブのダブルクリックで「タブをピン留め」、もう一度ダブルクリックで「ピン留めを外す」です。

ダウンロード : dblclick-tab-pinned.uc.js
GitHub : dblclick-tab-pinned.uc.js

FirefoxのCtrl+Fで検索バーの表示/非表示に置き換えるやつ.uc.xul

動作確認

通常はCtrl+Fで検索バーが表示されますが、もう一度Ctrl+Fで非表示にするというアレです。

Firefoxまとめサイト userChrome.jsにあった「Ctrl+F押したらFindbarが出るけどもう一回押したら消える.uc.xul」はFirefox 4に対応してなかったので。

ドメイン失効したやつのリンクになってたのでURL修正。ついでに最新っぽいFirefoxでも動作確認。

ダウンロード : toggle-findbar.uc.xul
GitHub: toggle-findbar.uc.xul

<script type="application/x-javascript"><![CDATA[
var ucjsToggleFindBar = function() {
    gFindBar.hidden ? gFindBar.onFindCommand() : gFindBar.close();
}
]]></script>
<window id="main-window">
  <keyset id="mainKeyset"><key id="key_find" oncommand="ucjsToggleFindBar()" /></keyset>
  <commandset id="mainCommandSet"><command id="cmd_find" oncommand="ucjsToggleFindBar()" /></commandset>
</window>

Firefox 31で移動できないボタン(進む・戻る・リロード)をブックマークボタンの左に持ってくるだけ.uc.js

fx31

Firefox 31でもこの配置にしたかっただけなんや……。
テーマによってはロケーションバーと進む・戻るが一体化してるようなのがあるのでuserChrome.cssなんかで修正が必要かもしれません。
リロードボタンもたぶんズレます。

ダウンロード: move_back_and_forward_button.uc.js

// ==UserScript==
// @name           Move back & forward button
// @description    進む・戻る・リロードボタンをブックマークボタンの左に持ってくるだけ
// @version        1.0
// @author         oflow
// @compatibility  Firefox 31
// @namespace      http://oflow.me/archives/1216
// ==/UserScript==

(function() {
    Components.utils.import('resource:///modules/CustomizableUI.jsm');
    var id = 'bookmarks-menu-button',
        buttonIds = ['back-button', 'forward-button', 'urlbar-reload-button', 'urlbar-stop-button'];

    // ブックマークボタンをナビゲーションバーの先頭に移動させとく
    var ids = CustomizableUI.getWidgetIdsInArea(CustomizableUI.AREA_NAVBAR);
    if (ids.indexOf(id) == -1) {
        CustomizableUI.addWidgetToArea(id, CustomizableUI.AREA_NAVBAR, -1);
    }

    var before = document.getElementById(id);
    buttonIds.forEach(function(buttonId) {
        var button = document.getElementById(buttonId);
        before.parentNode.insertBefore(button, before);
    });
})();

Firefoxアドオン「GMarks」のメニューをブックマークツールバーに移動させる.uc.js (Firefox 24~31)

GMarks Menu in Bookmark Toolbar

動作確認
Firefox ESR 24.8, ESR 31.1 + userChromeJS 1.5 + Sub-Script/Overlay Loader v3.0.44mod

別のアドオン「Personal Menu」「Personal Titlelbar」と合わせて使う際に、メニューバーにある「GMarks」を表示させてると不格好なのでブックマークツールバーに移動させました。
上記2つのアドオンを使ってない場合でも「GMarks」メニューは移動します。

※画像はテーマ「rein」を使用してますが「全てのブックマークを表示する」アイコンになってるはずです。(デフォルトテーマで確認)

ダウンロード: gmarks_menu_in_bookmark_toolbar.uc.js
GitHub: gmarks_menu_in_bookmark_toolbar.uc.js

(function() {
    var menupopup = document.getElementById('gmarksMenuPopup');
    var toolbarbutton = document.createElement('toolbarbutton');
    toolbarbutton.id = 'ucjs-gmarks-toolbarbutton';
    toolbarbutton.className = 'bookmark-item';
    toolbarbutton.setAttribute('type', 'menu');
    toolbarbutton.setAttribute('label', 'GMarks');
    toolbarbutton.setAttribute('container', 'true');
    // 他と区別しやすいように★のマークに変える
    toolbarbutton.setAttribute('image', 'chrome://browser/skin/places/allBookmarks.png');
    toolbarbutton.appendChild(menupopup);
    var personalBookmarks = document.getElementById('PlacesToolbarItems');
    if (personalBookmarks) {
        var bookmarkItem = personalBookmarks.getElementsByClassName('bookmark-item');
        if (bookmarkItem && bookmarkItem[0]) {
            bookmarkItem[0].parentNode.insertBefore(toolbarbutton, bookmarkItem[0]);
        } else {
            personalBookmarks.appendChild(toolbarbutton);
        }
    }
})();

Feedlyで読みたくないエントリーを非表示にするユーザースクリプト

Feedly Proに$99払ったのにあまりプロ感がなくどのあたりが有料なのか分からなくなってきたけど、メインのRSSリーダーとして使ってることに変わりはないので中途半端に作ったやつを修正しました。

例のごとく userscripts.org にありそうだけど自分で作ると修正するとき楽なのでということです。

動作確認

ダウンロード: feedly_filter.user.js

「井上喜久子17才です」っつってんだろ! 17sai.user.js

17sai

声優業界の基礎知識ともいえる井上喜久子さんの年齢がGoogle検索で間違って表示されてしまうのを自動で修正します。
他数名の年齢も同様に修正します。

いや、ノリで作ったジョークスクリプトなので細かく検証してませんよ。
元ネタは “hirataya / 17sai.user.js” です。
動かなかったので今のGoogleに対応させてたら他にも年齢間違って表示されてる箇所があったのでベタ書きで追加してってます。
たぶん、間違いなくGoogle検索が重くなります。要注意です。

※「17歳」ではなく「17才」と表記するのが正しいようなので修正しました。

ダウンロード: 17sai.user.js

Firefoxのキャッシュを1発で消す.uc.js

ucjs_clear_cache

キャッシュを削除してどうのこうのって殆ど使わないんだけど「最近の履歴を消去」から「キャッシュ」にチェック入れて消すってのが面倒臭すぎるのでツールメニューに追加することにした。

キャッシュのクリアは

0: STORE_ANYWHERE (すべて)
1: STORE_IN_MEMORY (メモリキャッシュ)
2: STORE_ON_DISK (ディスクキャッシュ)
3: STORE_ON_DISK_AS_FILE (今は使われてない)
4: STORE_OFFLINE (オフラインキャッシュ)

のどれか指定(nsICache | MDN)。やっぱり面倒臭いので全て削除にしている。

ダウンロード: clear_all_cache.uc.js

(function() {
    if (document.getElementById('menu_ClearStoreAnywhere')) return;
    var menuitem = document.createElement('menuitem');
    menuitem.setAttribute('id', 'menu_ClearStoreAnywhere');
    menuitem.setAttribute('label', 'u30adu30e3u30c3u30b7u30e5u3092u6d88u53bb');
    menuitem.addEventListener('command', function() {
        var cs = Cc["@mozilla.org/network/cache-service;1"].getService(Ci.nsICacheService);
        cs.evictEntries(Ci.nsICache.STORE_ANYWHERE);
    }, false);
    var menuTools = document.getElementById('menu_ToolsPopup');
    if (!menuTools) return;
    menuTools.appendChild(menuitem);
})();