ラベル KeySnail の投稿を表示しています。 すべての投稿を表示
ラベル KeySnail の投稿を表示しています。 すべての投稿を表示

2013年6月25日火曜日

Firefox の KeySnail で設定したホットキーをマウスジェスチャーから呼び出す

1. ホットキーをマウスジェスチャーから呼び出す

SnapCrab_No-0310前回、KeySnail で「最小フォントサイズ」を変更するホットキーを設定した。ホットキーとして割り当てたのは、

Alt + 0

今回は、マウスジェスチャーを利用するためののアドオン FireGestures から、KeySnail で設定したキーバインドを呼び出したい。

 

2. FireGestures のスクリプトでキー入力を行う

  • Firefox ボタン > アドオン > FireGestures の設定ボタンを押す

「マッピング」タブを選択し、画面下部にある「スクリプトを追加」ボタンを押すと、編集ダイアログが表示される。

「名前」フィールドを「最小フォントサイズを変更」とした。

SnapCrab_No-0311

「スクリプト」欄には、以下を貼り付ける。

var event = document.createEvent("KeyEvents");
event.initKeyEvent("keypress",
		   true,
		   true,
		   null,
		   false,  // holds Ctrl key
		   true,   // holds Alt key
		   false,  // holds Shift key
		   false,  // holds Meta key
		   0,      // presses a special key   , @see http://mxr.mozilla.org/mozilla/source/dom/public/idl/events/nsIDOMKeyEvent.idl
		   event.DOM_VK_0  // presses a normal key, e.g. "A".charCodeAt(0),
		   );
document.documentElement.dispatchEvent(event);

ジェスチャーは RL とした。これは自分の環境では、マウスジェスチャー R に対して「表示の拡大」、L を「表示のリセット」に割り当てているため、類似した動作にした。

 

3. スクリプトについて

上記のスクリプトは、以下を参考にした。

キーイベントを初期化するためのメソッドの解説は、

 

関連記事

2013年6月24日月曜日

Firefox のアドオン KeySnail で「最小フォントサイズ」を変更するホットキーを設定する

1. Firefox で「最小フォントサイズ」を指定すると表示が崩れる

SnapCrab_No-0291Firefox 21 で Google ドライブのスプレッドシートを開くと、表示が崩れる。「行番号」が大きくなるに連れ、隣のセルが徐々にズレていく。

このような表示になった原因は、「最小フォントサイズ」を指定していたため。

  • オプション > コンテンツ > フォントと配色 > 詳細設定

において、「最小フォントサイズ」を「なし」に設定すると、正常に表示される。

最近では、Feedly のバージョン 16.0.500 でも同じような問題が生じていた。

だたし、Google Chrome で「最小フォントサイズ」を指定しても、どちらのアプリケーションとも問題なく表示される。

 

2. KeySnail で最小フォントサイズを変更するホットキーを設定する

Firefox で「最小フォントサイズ」を指定するには、いくつか手順を踏む必要がある。「最小フォントサイズ」を指定したり、「なし」に設定する操作に対してホットキーを付けたい。

SnapCrab_No-0305keysnail は特定の操作に対してキーを割り当てることができるアドオン。このアドオンを用いて、「最小フォントサイズ」を切り替えるホットキーを設定する。

最初に、KeySnail のインストールと初期設定を行う。

次に、「最小フォントサイズ」を設定する操作に対して、ホットキーを設定する。

  • アドオンバーにある KeySnail アイコンを右クリック > 設定ダイアログを開く

キーバインド」タブを選択し、下部に表示される「追加」ボタンを押し、「オリジナルのコマンド」を選択する。

SnapCrab_No-0306

  1. コマンド名」を「最小フォントサイズを変更する」とした。
  2. 今回は、Alt + 0 をホットキーとして割り当てる。「キー」フィールドで同キーを入力する。
  3. 「関数」の欄には、以下のコードを挿入して、OK ボタンを押す。
function (ev, arg) {
    const MIN_FONT_SIZE = 14, // 最小フォントサイズ
	CONFIG_PREFIX = "font.minimum-size.",
	COUNTRY_CODES = ["ar", "el", "he", "ja", "ko" , "th", "tr",
			 "x-armn", "x-baltic", "x-beng", "x-cans", "x-central-euro",
			 "x-cyrillic", "x-devanagari", "x-ethi", "x-geor", "x-gujr",
			 "x-guru", "x-khmr", "x-knda", "x-mlym", "x-orya", "x-sinh",
			 "x-tamil", "x-telu", "x-tibt",
			 "x-unicode", "x-user-def", "x-western",
			 "zh-CN", "zh-HK", "zh-TW" ];
    var minFontSizeNow = util.getIntPref(CONFIG_PREFIX + "ja"),
	setMinFontSize = function(fontSize){
	COUNTRY_CODES.forEach(function(countryCode){
		util.setIntPref(CONFIG_PREFIX + countryCode, fontSize);
	    });
    };
    minFontSizeNow == MIN_FONT_SIZE ?
	setMinFontSize(0) :
	setMinFontSize(MIN_FONT_SIZE);
}

ここでは「最小フォントサイズ」を 14 とした。もし、別の大きさに設定したい場合、この値を変更すれば良い。

 

3. 関数について

about:config で最小フォントサイズを変更

最小フォントサイズは、abuot:config の設定において、

  • font.minimum-size.

により設定名を抽出し、各々の値を変更した。

 

about:config の設定値を KeySnail で変更

KeySnail で、about:config の値を変更するには、

KeySnail 0.5.2 をリリースしました - mooz deceives you > お手軽 about:config によると、

util.setPrefs() メソッドを追加しました。このメソッドを使うと about:config の値を .keysnail.js 内で簡単に設定することが出来ます。

util.js · mooz/keysnail Wiki · GitHub に util のドキュメントが存在する。ただし、全ての関数の解説があるわけではない。

より、getIntPref(), setIntPref() 関数が定義されていたので、これを利用して about:config の値を設定した。

2011年3月27日日曜日

Firefox のアドオン KeySnail で「ブックマークレット」にホットキーを設定 - Google Bookmarks への投稿するウィンドウを呼び出す

1. 「ブックマークレット」をショートカットキーで呼び出したい

Firefox 4 へ移行  したことにより、Google Bookmarks を利用するためのアドオン GMarks が使えなくなった。

その代わりに本家サイトに用意されている ブックマークレット を使い、ブックマークをすることにした。

SnapCrab_No-0953

しかし、マウスでブックマークをクリックするのは面倒。 (+_+) ブックマークレットにショートカットキーを割当てたい。

追記 (2011.3.30) : Gmarks が Firefox 4 に対応してれた。

 

2. KeySnail でショートカットキーを割当てる

ブックマークレットは、JavaScript で記述されている。

アドオン keysnail の機能は、JavaScript に対して、ショートカットキーを割り当てることができる。

あらかじめ用意されたコマンドだけでなく、 JavaScript を使ってオリジナルの関数を書き、それらを 自由なキーの組み合わせ に割り当てることが可能です。

そこで、Google Bookmarks のブックマークレットを、 keysnail を使い、ショートカットキーを割当てることにした。

 

KeySnail のインストールと初期設定

GitHub より keysnail をアドオンに D&D することによりインストール。

最初に起動したとき、設定ファイルを新しく作成する。

CropperCapture[130]

保存場所を尋ねられるので、複数の PC で設定を共有したいので、Dropbox 上を作成先に指定。

デフォルトのキーバインドは、

「とにかく Emacs」

にした。必要なければ、「キーバインドの設定なし」を選択。

CropperCapture[131]

 

キーバインドの設定

メニューより、

  • ツール > KeySnail > 設定ダイアログを開く

を選択。「キーバインド」において、「追加」ボタンを押して「オリジナルのコマンド」を選ぶ。

モードを

View

にして、コマンド名を適当に付ける。

キーは Firefox でブックマークをするときの動作を上書きするために

C-d

を割当てた。

CropperCapture[137]

 

ブックマークレットをキーバインドに設定

次に、上図の「編集」ボタンを押す。

公式のGoogle ブックマークレットの JavaScript の内容は、以下の通り。

javascript:(function(){var%20a=window,b=document,c=encodeURIComponent,d=a.open('http://www.google.com/bookmarks/mark?op=edit&output=popup&bkmk='+c(b.location)+'&title='+c(b.title),'bkmk_popup','left='+((a.screenX||a.screenLeft)+10)+',top='+((a.screenY||a.screenTop)+10)+',height=420px,width=550px,resizable=1,alwaysRaised=1');a.setTimeout(function(){d.focus()},300)})();

これをキーバインドに設定するために、 一部を修正した、以下のコードを貼り付け、「変更の反映」ボタンを押して OK 。

function (ev, arg) {
    var a = window,
        b = a.content.document,
        c = encodeURIComponent,
        d = a.open(
	    'http://www.google.com/bookmarks/mark?op=edit&output=popup&bkmk=' 
		+ c(b.location) 
		+ '&title=' 
		+ c(b.title)
	    , 'bkmk_popup'
	    , 'left=' 
		+ ((a.screenX || a.screenLeft) + 10) 
		+ ',top=' 
		+ ((a.screenY || a.screenTop) + 10) 
		+ ',height=420px,width=550px,resizable=1,alwaysRaised=1');
    a.setTimeout( 
	function () {
	    d.focus()
	}
	, 300)
}

これでブックマークをしたいページで

Ctrl + d

でブックマークできるになる。

 

ブックマークレットの修正点について

上記ブックマークレットで修正したのは、以下の点。

URL 最初の

javascript:

を削除。

decodeURIComponent により文字列をデコード。

全体を囲っている

(function(){  ...  })();

を削除。 ( cf. JavaScript の無名関数に引数を与える )

document.location

でブックマークしたいページの URL を取得できなかったので、代わりに

window.content

経由でアクセス。

 

3. Emacs 風にしたときの操作の注意点

検索をするとき、

  1. 新しくタブを開いて ( Ctrl + t ) 、
  2. 検索バーにフォーカスを移そうと Ctrl + K を押しても、

ロケーションバーにフォーカスが移ってしまう。

これを回避するには、現在閲覧しているページにおいて

  1. Ctrl + K を押し
  2. 検索したい単語を入力
  3. Alt + Enter を押す

ことにより、検索するのが効率的。

 

4. Adblock の設定

追記(2014/6/2): Adblock で特定のフィルタを利用していると、Google Bookmarks のウィンドウが閉じてしまう。

 

参考サイト