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

8.26.2013

Mac: How to Use Option as Meta Key in KeySnail

Mac: KeySnail で option キーを メタキーとして使う方法

 

Firefox の (主にEmacsユーザ向けの) キーボード・ブラウジング環境構築プラグイン KeySnail を使っている。

これを Mac 環境で使用したところ、option キーをメタキーとして使おうとしてもうまくいかず、
メタキーを使うキーバインドが一切動作しない状況に陥った。

試行錯誤の末、正しく動作するようになったのでその方法を記録しておく。

 

環境

  • Hardware: MacBook Air (USキーボード)
  • OS: OS X 10.8
  • Firefox: 23.0.1
  • KeySnail: 2.0.1

事象

デフォルト状態の KeySnail では、Altキー・Command キーの入力がメタキーとして解釈される。
keysnail/wiki/howto.ja.wiki at master · mooz/keysnail

Firefox では、Mac の optionキーが Altキーの働きと同等となるので、
optionキーを使ってメタキーのキーバインド (M-w, M-x など) ができると期待した。

(Command キーをメタキーとして扱うのは違和感があるのであまり使いたくない。) 

ところが optionキーを使ったメタキー操作は全く動作しない。

  • control と option を同時に押した時のキーバインドは正しく動作する。(C-M-r など)
  • C-q でエスケープしたあとに option+x などと入力しても、表示されるのは「null」

 

原因

OS X では (デフォルト状態では)、option キーを押しながら他のキーを入力すると特殊文字(å∫ç∂...)の入力が
行われる。

これらのキーを押下したときのイベントでは event.altKey が true にならないので
メタキーかどうかを判定する key.isMetaKey 関数を素通りしてしまう。

 

対応方法

key.keyEventToString 関数をフックして、イベントを特定するための文字列を書き換えればそれなりに動くようだ。

charCode を取得し、特殊文字 かどうかを判定した上で "M-" で始まる文字列に置換する。
(例えば、∑ (charCode=8721) が入力されたらなら "M-w" に置き換える)

このような処理を行う option-as-meta というプラグインが既に存在していたので、それをそのまま利用する。

これで optionキーをメタキーとして使えるようになった。

 

補足

optionキーではなく ESCキーをメタキーとして使用したいのであれば、「Metaplus」プラグインを利用するのが
最も確実な方法と思われる。

Plugin · mooz/keysnail Wiki 

 

8.23.2013

Getting Started with KeySnail - Mouseless Browsing on Firefox

Firefox + KeySnail でマウスレス・ブラウジングを始める

 

今更ながらマウスレス・ブラウジングの便利さに目覚めた。

Firefox でのキーボード操作拡張プラグインは以下の2つが主流のようである。

Emacs 修行中の私としては、KeySnail を選ばざるを得ない。

 

本体のインストール

こちらのページから keysnail.xpi をダウンロードして Firefox で開き、インストールする。

keysnail japanese · mooz/keysnail Wiki

とても簡単。

 

初回起動

Firefox を再起動すると、設定ファイルを新規作成するか尋ねられる。

新規作成の場合、設定ファイルのパス、デフォルトのキーバインドを選択。
今回はとりあえず Dropbox 上にファイルを作っておいた。 

Screenshot 8 23 13 03 14

 

プラグイン導入

今日のところは、キーボードでリンク遷移を行うための HoK をインストールするところまで。

  • HoK
    こちらのページから、HoK を右クリックして Install this plugin。
    Plugin · mooz/keysnail Wiki 

    インストールが済んだら、.keysnail.js (_keysnail.js) の末尾に以下の内容を追記。
    key.setViewKey('e', function (aEvent, aArg) {
        ext.exec("hok-start-foreground-mode", aArg);
    }, 'Hok - Foreground hint mode', true);
    
    key.setViewKey('E', function (aEvent, aArg) {
        ext.exec("hok-start-background-mode", aArg);
    }, 'HoK - Background hint mode', true);
    
    key.setViewKey(';', function (aEvent, aArg) {
        ext.exec("hok-start-extended-mode", aArg);
    }, 'HoK - Extented hint mode', true);
    
    key.setViewKey(['C-c', 'C-e'], function (aEvent, aArg) {
        ext.exec("hok-start-continuous-mode", aArg);
    }, 'Start continuous HaH', true);
    
    key.setViewKey('c', function (aEvent, aArg) {
        ext.exec("hok-yank-foreground-mode", aArg);
    }, 'Hok - Foreground yank hint mode', true);
    

    そして、設定ファイルをリロードすれば準備完了。(Tools -> KeySnail -> Reload init file)

    Webサイトを開いて「e」キーを押せば、各リンク先に対応したショートカットキーが表示され、
    そのキーボード操作でリンクを開けるようになる。 

 

これから慣れていきたい。

 

References

 

11.13.2011

HttpWatch on Firefox

Firefox 上で HttpWatch を使う場合の Tips

HttpWatch を使えば、http 通信の内容を確認することができる。
http://www.httpwatch.com/

しかし、Firefox でパイプライニングを有効にしていると、次のようなエラーが出て通信内容の取得ができない。

HttpWatch could not start recording because network.http.pipelining is enabled in Firefox
HttpWatch could not start recording because network.http.proxy.pipelining is enabled in Firefox

about:config から以下の設定を「false」に戻す必要がある。

network.http.pipelining
network.http.proxy.pipelining

7.12.2011

Firefox keyconfig extension

Firefox: keyconfig 拡張機能

Firefox で任意のキー操作にショートカットを割り当てるためには、keyconfig を導入すればよい。

ここから「keyconfig.xpi」をダウンロードし、実行する。
http://mozilla.dorando.at/

設定は、アドオン - 拡張機能 – keyconfig の「設定」から。

「閉じたタブを元に戻す」に「Ctrl+Z」を「適用」するためには、
元々割り当てられていた「元に戻す」に対して「キーを削除」するとよい。

参考:
http://busidea.net/archives/751

5.26.2011

Note for introducing Firefox

Firefox 初期セットアップ覚え書き

Google Chrome に見切りをつけようかと考えている今日のこの頃。

1. まず導入するアドオン

 ・AutoPager
 https://addons.mozilla.org/ja/firefox/addon/autopager/
 nクリックを1クリックにすると商売になる。1クリックを0クリックにすると、発明となる。

 ・FireGestures
 https://addons.mozilla.org/ja/firefox/addon/firegestures/
 「戻る」、「上の階層へ移動」といったオペレーションを、マウスジェスチャーのみで実現できる。

 ・Speed Dial
 https://addons.mozilla.org/ja/firefox/addon/speed-dial/
 ブックマークの進化系。ページのイメージがサムネールで表示され、1クリックで目的のページにアクセスできる。

 ・テキストリンク
 https://addons.mozilla.org/ja/firefox/addon/text-link/
 リンクになっていないURI文字列をダブルクリックで開けるようにする。

2. about:config 設定

 URLに「about:config」と入力すると、Firefoxの詳細なパラメータを変更できる。

 ・browser.search.openintab false => true
 検索バーを使用したとき、常に新しいタブで開く。Alt+Enterを押せば、同じタブで開く。

 ・mousewheel.withnokey.numlines 6 => 8
  mousewheel.withnokey.sysnumlines true => false
 マウスホイールの移動量を増やす。

 ・browser.tabs.closeWindowWithLastTab true => false
 最後のタブを閉じたときに、ウィンドウごと閉じられてしまうのを防ぐ。

 ・network.http.pipelining false => true
  network.http.pipelining.maxrequests 4 => 8
  network.http.proxy.pipelining false => true
 パイプライン処理(一度に多数のHTTPリクエストを送りつける)を行うことで、ブラウジングを高速化する。

 ・[新規] nglayout.initialpaint.delay 0 (整数値)
 描画開始までの待ち時間を無くして、さらに高速化。

参考:
http://www.mozilla.org/projects/netlib/http/pipelining-faq.html