Hatena::Groupkeysnail

きすねた(ん)

2010-10-18

Mac でも Ctrl-Space でマークを設定可能とするプラグイン

| 00:31 | Mac でも Ctrl-Space でマークを設定可能とするプラグイン - きすねた(ん) を含むブックマーク はてなブックマーク - Mac でも Ctrl-Space でマークを設定可能とするプラグイン - きすねた(ん)

最近, 本格的に Mac を使い始めたのだが, Mac 版の Firefox では Ctrl-Space を押すとコンテキストメニューが開いてしまう. 調べてみると, Ctrl-Space に対しては keypress イベントが送られていないことが分かった. KeySnail は keypress イベントをハンドリングしているのだが, それが送られないのであればコマンドの実行もしようがない.

さて, どうしたものかと考えていたところ, keydown と keyup に関しては, Ctrl と Space どちらに対しても別々にではあるが取得可能であることが判明. これは何とかできるのではないか, とごにょごにょし, 何とか納得のいく挙動を実現することができた.

そんなわけで作成された "Set Mac" というプラグインは, 以下よりインストールすることが可能. 下の方にある.

no title

junkwjunkw2010/12/13 18:35Mac で KeySnail を愛用させてもらっているのですが、メタキーを Option キーに割り当てるにはどうすればいいのでしょうか?

moozmooz2010/12/13 23:36試していないので確かなことは言えないのですが, Option キー自体を Firefox がハンドリング出来なかったと思うので,
残念ながら Option キーをメタキーとして扱うことは難しいかと思います.

moozmooz2010/12/13 23:40ちなみに, メタキーとして認識させたいキーを変更する場合は .keysnail.js の PRESERVE エリア内で, 次のようにして
isMetaKey の定義を上書きします.

key.isMetaKey = function (ev) {
return ev.altKey || ev.metaKey;
};

ev には Firefox のキーイベントが渡ります.

ここで, ctrlKey, metaKey, commandKey, shiftKey というプロパティは定義されているのですが,
optionKey というプロパティは存在しないと思うので, おそらく無理なのではないかという結論に至りました.

moozmooz2010/12/13 23:47あ, http://unixpapa.com/js/key.html を見ると Mac においては Option キーで altKey が true となると書いてありますね.
Option キーを押しながらの特殊文字入力機能を無効にするとうまくいく可能性がありますね.

junkwjunkw2010/12/14 22:14返信ありがとうございます。どうやら特殊文字入力機能の無効化は GUI でも、defaults コマンドでも提供されていないようです (コマンドは探せばもしかするとあるのかもしれませんが、みつけられませんでした)。

starposstarpos2010/12/15 06:17環境設定 > コンテンツ > Javascrit 詳細設定 > コンテクストメニューを無効化または変更する をチェックしないといけないことを知らなくてハマりました(Firefox 3.6.13).
http://www.htmlguard.com/articles/disabling-the-context-menu-in-firefox/