本ブログの更新は停止しています。更新は新しいサイトの Travellers Tales で行なっています。

ついにクリック長押しでコンテクストメニューが可能に!


Mac OS 9 以前時代にはマウスクリックしてそのまま長く押し続けるとコンテクストメニューを開ける FinderPop という機能拡張があり、ワンボタンマウスには必須の機能だったんですが、OS X では長らくこれを完全に代替するものがありませんでした。

ところが、林檎はいかがですか?で紹介されていた (新しもの好きMacEGOism.jp 等でも紹介されていますが)、One Finger Snap を使えば、やっとこの望みを実現させられそうです。

Windows からのスイッチ組の人向けに言うと、ワンボタンマウスでも、クリック長押しで右クリックと同様のメニューが出せるというわけです。

One Finger Snap by Old Jewel Software

まだシェアウェア登録していませんが、かなり気持ちは傾いています。後は、深刻な他のアプリケーションとの衝突がなければ登録かな。高くないですしね。

これまでにも同種の機能拡張はいくつかあったのですが、どれもいまいち使用には至っていませんでした。

OpenMenu は、Jedit X を開発している日本のアートマン21の出しているものですが、Cocoa アプリでは使えないという弱点がありました。ウェブページには明確な記載がないようですが、マニュアルには以下のようにあります。
アプリケーションには、残念ながらコンテクストを取得できるアプリケーションと そうでないものがあり、一般にほとんどのCarbon系のアプリケーションからはコン テクストを取得できるのに対し、Cocoa系のアプリケーションからはコンテクスト を取得することができません。

Ittec は、一時期使ってみたのですが、その頃のバージョンではアプリケーションが強制終了したりすることもあり、まだ互換性が今ひとつとの印象を受け、その後使用していません。現バージョンはまだ Tiger に対応してないようです。

FruitMenu はマウスクリック長押しでコンテクストメニューを出すための機能拡張ではないのですが、Finder でのみ、その機能が使えるようになっています。しかし、これも Finder 以外でもコンテクストメニューを出したい私の要望に応えるものではありませんでした。

以上3つはシェアウェアです。

iScroll2 を導入すると、対応する PowerBook、iBook ではトラックパッド操作でコンテクストメニューを表示させることができます。なかなか悪くないのですが、長押しで出るわけではないので、ちょっとトラックパッド操作に慣れが必要です。また、もちろん対応機種以外では使えません。でも、シェアウェアではないので許せます。


One Finger Snap の使用感は悪くありません。これで US$6.85 なら登録してもよいかなと思います。

今のところ、気になる点としては、以下のようなところ。

・反応時間を短くしすぎると、コンテクストメニューを表示できないアプリケーションがある。(具体的には mi )
・編集ウインドウやテキストボックスでの反応がおかしい。(押すのをやめると表示される)
要らないところでも control+click になっているっぽい。(メニューバーとか) メニューバーと Dock に適用されるのは、バージョン 1.1.1 で修正

まぁ、でも実用上はなんとかなりそうな範囲です。今後のアップデートで修正されるでしょうし。

これにいくつかのコンテクストメニュー項目を自分で追加して使うと、より FinderPop らしくなります。

Open Subfolder:名前のまんまですが、クリックしたフォルダに含まれる下位の項目を開けます。

QuickAccessCM:選択した項目を、任意の場所にコピーや移動できます。

その他、いろいろなコンテクストメニューは、以下などを参照してみて下さい。

Miko さんちのホームページ:マックなページ
free.abracode.com:Contextual Menu Plugins for Mac OS X

#Old Jewel Software は LazyMouse を出しているところなんですね。LazyMouse はユーザに確認を求めるダイアログ等が出たときに、クリックするボタンへ自動的にマウスカーソルを移動してくれるものです。これも同種の機能拡張が OS 9 時代にありましたね。

8月2日追記
林檎はいかがですか?さんより「miの「環境設定/オプション2/マウスボタンを押し続けたときメニューを表示」のところを「5ティック」にしたら0.5秒でも問題なく反応するように」なったとのコメントをいただきました。なるほど。

さらに思ったのですが、mi は元々、アプリケーション側にその機能をもっているので、One Finger Snap の除外アプリケーションに指定してもいいかなと思いました。除外アプリケーションへの指定は、今のところ GUI はなく (そのうち付くでしょう)、コマンドで行わなければなりません (説明書に記載あり)。ターミナルで以下を打ちます。

defaults write com.oldjewel.onefingersnap "JW.onefingersnap.ignoredApps" -array-add "AppToDisable"

AppToDisable の部分は、メニューバーに表示させれているアプリケーションの名前になります (日本語の名前だと面倒そうです。UTF-8 で指定するんだろうなぁ)。One Finger Snap を一旦停止して、再開させると反映されます。

Posted: 月 - 8月 1, 2005 at 12:02 AM               Hatena Bookmark



©