griffin-stewieの日記

2008-04-01

[][][][]SafariGestures Ver0.0.4 リリース


追記

このブログ内の最新版SafariGesturesのエントリはこちら、

[SafariGestures] - griffin-stewieの日記

もしくはこちらへどうぞ。

no title

追記:終わり




SafariGestures Ver0.0.4 をリリースします。


Ver0.0.4 では大幅な機能追加、変更を施しています。

以前から言っていたようにこのバージョンでは過去バージョンの設定ファイルは使えなくなりました。

ご迷惑をお掛けしますがご了承下さい。


Ver0.0.4で追加された多くの機能はcanberlandさんの協力のお陰で実装することができました。

僕一人ではこれだけの機能を実装することはできませんでした。

canberlandさんに本当に感謝いたします。


新機能

1. Safariのメニュー項目をコマンドに割り当て

個人的にはこれが一番大きな機能だと思っています。

過去バージョンではSafariGesturesに組み込まれたコマンドしかジェスチャを割り当てられませんでした。

ですので、あれが欲しいとかこれは必要ないとか人それぞれあったかと思います。

Ver0.0.4からはSafariのメニューから好きな項目にジェスチャを割り当てて実行できるようになりました。*1

History FlowのようなSafariStandなどのプラグインの機能もメニューバー上にあればジェスチャを割り当てられます。

また、SafariStandのaction_messageも使えます。

多くのaction_messageはSafariのメニューと重複していますが、action_message:HT_arrangeTab:何か便利だと思います。


サービスメニューにも割り当てられるようになっていますので、各種アプリ等との連携もより簡単に実行可能です。



2. ロッカージェスチャ

ロッカージェスチャが使えるようになりました。

ロッカージェスチャとは

右クリックしながら左クリック、もしくは その逆の左クリックをしながら右クリックをする動作のことをいいます。

左->右のロッカージェスチャは、左を押した状態でマウスを動かすとロッカージェスチャが無効になります。

ドラッグを有効にするための仕様


当然ながらロッカージェスチャは2ボタン以上のマウスでなければ実行は不可能です。

MacBookなどのトラックパッドからは実行できません。

MightyMouseのようなタイプマウスでは右と左の同時押しができないため、ロッカージェスチャを実行できません。

3. ジェスチャの軌跡を描画

要望を頂いていた機能を実装しました。設定項目は以下の通りです。

  1. ジェスチャの軌跡を描画するかどうか
  2. ジェスチャの軌跡の色
  3. ジェスチャの軌跡の太さ
4. ジェスチャ認識閾値の設定

いままで固定していたジェスチャ認識閾値を設定できるようにしました。

デフォルトでは50.0となっています。

数値を小さくすると、ジェスチャをするとき小さな動作でも認識してくれます。

5. SafariGesturesオリジナルコマンドを2つ追加

一つ目は”タブの複製”です。

現在のタブと同じURLのタブを新規タブで開きます。

二つ目は”タブまたはウインドウを閉じる”です。

このコマンドは実行時の状態によって以下のように変化します。

・タブが複数ある場合は選択しているタブを閉じる

・タブが1つなら空白にする

・タブが1つで空白ならウインドウを閉じる


この2つと過去バージョンにもあった

・"新しいタブで選択文字列をURLとして開く"(h抜き対応)

・"新しいタブで選択文字列を検索"

の4つのコマンドは メニューバーの”SG”内にメニューとして登録してあります。

6. ジェスチャのトリガーをOptionキーでも可能になりました

通常、マウスジェスチャ機能は右クリックを押しながら、

ことで実行します。

この場合、ワンボタンマウス*2MacBookなどのトラックパッドでの操作はできないもしくはやりづらいです。

そこで、右クリックの代わりにOptionキーを使えるようにしました。

Optionキーを押しながらマウスカーソルを左に動かして、Optionキーを離すと”戻る”のマウスジェスチャが実行できます。

同様にOptionキーを押しながらマウスホイールを回す、もしくはトラックパッドを2本指で縦になぞる事でホイールジェスチャが実行できます。


これでトラックパッドユーザーでもマウスジェスチャ機能が使えるようになります。


しかし、マウス右クリックの機能全てをOptionキーで代替しているわけではありません。

つまり、Optionキーを単体で押してもコンテキストメニューは表示されません。

また、Optionキー+左クリックロッカージェスチャができるわけではありません。

不具合の修正

ジェスチャ設定画面のテーブルビューの並びが狂う不具合を修正しました。


設定画面

機能追加に伴って大きく設定画面が変わりました。

基本的に見ていただいたらすぐ使えるとは思いますが、説明します。

SGメニュー

f:id:griffin-stewie:20080401201923p:image

SafariGesturesをインストールするとメニューバーに ”SG” というメニューが追加されます。

上の4つはSafariGesturesで定義したオリジナルコマンドが並んでいます。

その下に


Preferences      設定画面を表示する。全ての設定はここから

About        バージョン情報を表示する。


があります。

ジェスチャ設定パネル

f:id:griffin-stewie:20080401201841p:image

SG” > ”Preferences” を選択して”ジェスチャ設定パネル”を表示したところ


上のスクショデフォルトの状態でのジェスチャ設定パネルです。

デフォルトでは

戻る ・・・ L

進む ・・・ R

タブを閉じる ・・・ DR

ページを再読み込み ・・・ UD

ロッカージェスチャ ・・・ オフ

ジェスチャの軌跡を表示 ・・・ オフ

ジェスチャの認識閾値 ・・・ 50.0

が設定されています。

新しいマウスジェスチャの登録

まず、新しくコマンドを追加します。

テーブルの左下にある”プラスボタンクリックします。

するとpopupメニューが表示されます。

展開した状態が下のスクショです。

f:id:griffin-stewie:20080401201840p:image


ここに表示される項目はSafariのメニューバー上のメニューと同じものが表示されます。*3

この中から使いたい項目探してクリックします。

ここでは”ファイル” > ”ウインドウを閉じる”をクリックしてみました。

f:id:griffin-stewie:20080401202133p:image


上のスクショが追加したあとの状態です。

次に割り当てるジェスチャを登録・編集します。

それには以下の2つの方法があります。

  1. ”ジェスチャを編集...”ボタンクリック
  2. 登録したいコマンドの行のGestures列をダブルクリック

また、コマンドの登録・編集も同様に変更できます。

いずれかを実行するとジェスチャ入力パネルが表示されます。

f:id:griffin-stewie:20080401202132p:image


”ジェスチャ入力パネル”上で登録したいジェスチャを実行します。

すると認識したジェスチャ文字列(L、R、D、U)が表示されます。

認識したジェスチャ文字列でよければ ”Set Value” をクリックしてください。

”Cancel” をクリックした場合は適応せずに ”ジェスチャ入力パネル” が閉じられます。


f:id:griffin-stewie:20080401202130p:image

”Set Value”をクリックし、登録した状態。


設定した内容を適用するには ”OK” ボタンクリックして下さい。

”OK” ボタンクリックしなければ、設定は適用されません。

”Cancel” ボタンクリックした場合は設定は適用されず、設定前の状態に戻ります。


ジェスチャ設定パネルを開いている間は新しい設定が有効です。

ただし”Cancel”を押すと元に戻ります。 (試しに使ってみることを想定)

Preferenceパネルで「OK」を押さないと設定は保存されないので注意して下さい。

(開きっぱなしでSafariを閉じてしまうと保存されない)


”OK” ボタンクリックして、ジェスチャ設定パネルを閉じます。

これで、”LR”というジェスチャを実行するとウインドウが閉じられるようになります。

ジェスチャの削除

削除したいものを選択し、”-” ボタンクリックすることで削除できます。

ロッカージェスチャの設定

設定したいアクションチェックボックスをオンにします。

すると、”編集ボタンが有効になります。

編集ボタンクリックすると、ジェスチャのコマンド追加時と同じpopupメニューが表示されます。

設定したいコマンドクリックして下さい。

ジェスチャの軌跡関連の設定

軌跡を表示させたい場合にはチェックボックスをオンにしてください。

オンにすると若干負荷が上がります。


描画される軌跡の太さの設定も可能です。テキストフィールドに数字を入力するか、テキストフィールド横のステッパー(上下のボタン)で数値を変更させて下さい。数字を大きくすると太く、小さくすると細くなります。


軌跡の色も変更可能です。色の横のカラーウェル(デフォルトだと赤い色の所)をクリックして下さい。

カラー設定パネルが表示されますのでお好みの色をクリックして、閉じて下さい。

ジェスチャの認識閾値の設定

テキストフィールドに数字を入力するか、テキストフィールド横のステッパー(上下のボタン)で数値を変更させて下さい。数字を大きくすると認識感度が鈍くなります。つまり、マウスを大きく動かしたときにしか認識しなくなります。小さくするとその逆に認識感度が敏感になります。

お詫び及び仕様

popupメニュー内の各メニュー項目はSafariのメニューバー上のメニューと同じものが表示されます。

しかし、本来 ”Safari” と表示されるメニューが ”Apple” となっていますが、これは仕様とさせていただきます。

また、ブックマークメニュー内のブックマークの階層はルート階層のみコマンドとして設定が可能です。

フォルダ内のブックマークは設定しても実行できません。

インストール方法

過去バージョンを使って頂いている方

設定ファイルの互換性がなくなりました。

/Users/ユーザ名/Library/Application\ Support/SafariGestures

にあるSafariGestures.plistを削除して下さい。

削除しないままインストールし、起動すると以下のようなエラーメッセージがでると思います。

f:id:griffin-stewie:20080401201842p:image

一度Safariを終了させて、設定ファイルを削除してからSafariを立ち上げてみて下さい。


ダウンロードした SafariGestures.bundleをSafariを終了させた状態で上書きしてください。


初めてインストールされる方

SafariGesturesを利用するためにはSIMBLが必要です。

まず SIMBL をインストールしてください。

「SafariGestures.bundle」を SIMBL のプラグインフォルダに入れます。インストール後のファイルパスは、

/Users/あなたのユーザ名/Library/Application Support/SIMBL/Plugins/SafariGestures.bundle

となります。


ダウンロード

SafariGestures Ver0.0.4をダウンロード


不具合、要望があればお気軽にコメント下さい。

*1:一部制限あり

*2最近はもう少ないと思いますが

*3:本来 ”Safari” と表示されるメニューが ”Apple” となっていますが、これは仕様とさせていただきます。

犬にボディブロー犬にボディブロー 2008/04/01 22:14 すごく進化してる!!!

griffin-stewiegriffin-stewie 2008/04/01 22:24 >犬にボディブロー
ありがとうございます。
これで少しでも省エネブラウジング環境ができればと思います。

senbeysenbey 2008/04/01 23:05 使わせていただきます。認識閾値の設定ができてより快適になりました。

要望なのですが、”command+↑↓矢印”(ページ先頭・末尾にスクロール)と
”その他のタブを閉じる”をコマンドに追加して頂けないでしょうか?

Kei_9Kei_9 2008/04/02 00:07 先日0.0.3入れて使ってみましたがとってもイイ感じ・・・ってもう新作リリースですか!
ていうかコレはスゴイ機能てんこ盛りですね〜
ロッカージェスチャとか軌跡表示とかメニューへのアクセスとか・・・凄すぎです。
ある意味Sleipnirのジェスチャを超えちゃってますね・・・

griffin-stewiegriffin-stewie 2008/04/02 00:23 >senbeyさん
認識閾値は要望として上がってなかった部分なので正直需要があるかどうか分からなかったのですが、
お役に立てたようで良かったです。

頂いた要望は実装可能かどうか調査します。実装できない可能性もありますが、その時はご了承下さい。

>Kei_9さん
使っていただいてありがとうございます。
>ロッカージェスチャとか軌跡表示とかメニューへのアクセスとか・・・凄すぎです。
上記機能は僕は実装してません (^^ゞ
canberlandさんの協力のお陰です。ありがたいです。

確かに、機能の数だけならSleipnirのジェスチャを超えているともいえますね(汗)
自分で言うのもなんですが、Safariでかなり快適にブラウジングできるようになりました。

ベースとなるコードを書いていただいたcooさん、
開発パートナーでありObjective-Cの師匠でもあるcanberlandさんなど多くの方々のお陰で
SafariGesturesはできているので感謝につきません。
使って下さるユーザーの方々も思っていたよりも多くいらっしゃって、これまた感謝感激です。

これからもがんばります。

miyabmiyab 2008/04/02 03:21 0.03から使わせていただいてるのですが、すごい進化ですね!
60歳くらいの父のMacにも入れてたら、「すごいね!」と喜んでました。

ひとつ質問なのですが、
History Flowがジェスチャーで消せなくなってしまったのですが、なぜなんでしょうか??
0.03だと、RLRで開いたあと、またRLRで消せた気がします。
0.04では、ウィンドウを閉じる、あるいはタブを閉じるでも消せません。。。

最後に、今後、Donation ware にする予定はないのでしょうか?
非常に快適に使わせてもらってるので、私を含めて、是非いくらかでも、、、と思っている人は少なくない気がします。
ご検討ください!

griffin-stewiegriffin-stewie 2008/04/02 16:19 >miyabさん
使っていただいてありがとうございます。

>60歳くらいの父のMacにも入れてたら、「すごいね!」と喜んでました。
お父様にも喜んでいただいたようでうれしいです。僕も60歳の父にマウスジェスチャ機能のこと(Windowsですが)を説明したんですが、
あまり良いリアクションをもらえなくて残念でした。マウスジェスチャという仕組みは一度使えば手放せなくなるくらい便利だと思うんですが説明は難しいですね。

>History Flowがジェスチャーで消せなくなってしまったのですが、なぜなんでしょうか??
メニューをジェスチャとして使えるようにしたときに、誤爆防止にSafariの持つウインドウのみにジェスチャできるように判定する仕組みを導入したからです。別の方法をとるようにしましたので、次のバージョンからは0.03と同じようにHisoty Flowを使っている時に”Hisoty Flow”を割り当てたジェスチャを行えば消せるようになります。次のリリースまでは閉じるボタンかエスケープキーなどで閉じていただけますか?ごめんなさい。

>最後に、今後、Donation ware にする予定はないのでしょうか?
お言葉は大変ありがたいのですが、そのような予定はありません。
SafariGesturesは元々、僕が「マウスジェスチャーが欲しい」といったのをcooさんがSafariWheelTabを作ってくれて、
ソースコードまで公開してくださったものを個人的に機能を付け足して使っていたプラグインです。
それを、ちょっと調子に乗って外に晒しただけのものなので普通の一般的なフリーウェアとさせてください。

こういう風にユーザーの方から「便利だよ」とか喜びの声を頂けることがモチベーションになります。
お気持ちだけありがたく頂きたいと思います。

じゃがとらねこじゃがとらねこ 2008/04/02 18:27 楽しく使わせていただいてます。
使い勝手が良すぎて用事もないのにマウスジェスチャしてたりします。。

1点気になったのですが「ロッカージェスチャの設定」について
「左→右」「右→左」とありますが設定すると逆になってたりしませんかね?

でも、逆だと思って設定しておけば問題ないです!
ありがとうございます。

Dr.MORODr.MORO 2008/04/03 08:09 マジ使えます、これ!!!
しかも進化してるるる!
軌跡も奇跡!(無駄に画面上で一筆書きして遊んでます、消えちゃうけど・・・)
有り難い話です。

で、でも、0.03デフォルトの「全てのタブをリロード」、戻ってきて欲しすぃです・・・。(無理?)

senbayさんの”その他のタブを閉じる”コマンド、いいっすね〜・・・。(これも無理?)

SG独自コマンド、どこか別に設定できれば・・・。(やっぱ無理?)

次の進化、楽しみです!
頑張ってください!
応援してます!

griffin-stewiegriffin-stewie 2008/04/03 14:01 >じゃがとらねこさん
ありがとうございます。

>1点気になったのですが「ロッカージェスチャの設定」について
当方の環境(Leopard&Tiger)で試してみても再現できませんでした。
ソースコードを見ても問題なさそうでした。
申し訳ないですが、もう一度設定を確かめいただけますでしょうか?
それでも症状が同じ場合はお手数ですが、動作環境をコメントいただけますか?

他にじゃがとらねこさんと同じ状況のユーザーの方がいらっしゃいましたらコメントいただけたらと思います。


>Dr.MORO
ありがとうございます。
僕もたまに軌跡の太さを太くして画面を塗りつぶしたりしていますw

> で、でも、0.03デフォルトの「全てのタブをリロード」、戻ってきて欲しすぃです・・・。(無理?)
>senbayさんの”その他のタブを閉じる”コマンド、いいっすね〜・・・。(これも無理?)

「全てのタブをリロード」は次のバージョンで実装します。もう少々お待ち下さい。
「その他のタブを閉じる」は同様にSG独自コマンドとして実装するようにしていましたが、
今朝いろいろ弄っていると元々Safariのファイルメニューを開いてOptionキーを押すと
「そのほかのタブを閉じる」があるんですよね。僕は知りませんでした。
で、SafariGesturesでどうかなぁ?っと設定画面でコマンドを選ぶ時に同様にOptionキーを
押すとちゃんとメニューが変化しますのでその状態でコマンドを選択すると
「ファイル/そのほかのタブを閉じる」という名称でコマンドが追加されます。
ということで「その他のタブを閉じる」はVer0.0.4で使えますのでお試し下さい。

>SG独自コマンド、どこか別に設定できれば・・・。(やっぱ無理?)
どこか別に設定できれば・・・というのはどういうことでしょうか?
もう少し詳しく聞かせていただければと思います。

次のバージョンでは細かな不具合の修正と要望のあったコマンドが追加されます。
もう少々お待ち下さい。

じゃがとらねこじゃがとらねこ 2008/04/03 22:53 griffin-stewie
コメントありがとうございます。

> ソースコードを見ても問題なさそうでした。
確認していただいてすいません。一応動作環境を明記しておきますね。
CPU:PowerPC
OS:10.4.11
Safari;3.1

ついでですが、また1点、気になるところを見つけてしまいました。
見たところ誰からもご指摘が無かったようなのでご報告します。
もしかしたら仕様なのかもしれませんが、
「新しいマウスジェスチャの登録」にあたって、ジェスチャ入力パネルで動作入力するところですが
右クリックではなく、Option+クリックで登録を試みようとすると、全く描画できません。
描画できなくてもテキストに「DRDLU」みたいなコマンドを入れれば動くだろうからいいやーと思ったら
そのテキストボックスを選択することもできませんでした。
だから、右クリックつきマウスが無いと、デフォルトで入っているマウスジェスチャしか使えないかもしれません。

ただこれも、自分の環境だけの問題だったりする可能性大なので、そうだったら今度こそ大いに凹みます!!

じゃがとらねこじゃがとらねこ 2008/04/03 22:57 griffin-stewieさん 

呼び捨てになってました! 訂正してお詫びします!!
連投すません><

senbeysenbey 2008/04/03 23:35 >「ファイル/そのほかのタブを閉じる」という名称でコマンドが追加されます。
Optionキー併用で登録できました!ありがとうございます。
早速、色々なアプリのメニューでoptionキー押しまくってみました(今まで知らなかったのが恥ずかしい><)


じゃがとらねこさんのおっしゃるOption+ジェスチャによる「新しいマウスジェスチャの登録」の件ですが、私の環境では一旦テキストボックスをクリックすると登録が可能になりました。
ただ、Option+ジェスチャ自体がうまく動作しません。アドレスバーや検索バーにフォーカスがある時は動作するのですが、ページにフォーカスを移すと動作しなくなります。
トラックパッド・マウスの両方です。

”ロッカージェスチャ”は問題なく動作しております。
macbook(intel),osx10.5.2,safari3.1,safaristand L161

griffin-stewiegriffin-stewie 2008/04/04 03:05 >じゃがとらねこさん
>ロッカージェスチャの件
その環境でしたら僕のMacMiniと同じ環境なんですが何ででしょう?
他に同じ症状の方がいらっしゃいましたらお知らせください。

>ジェスチャ入力パネルのテキストボックス
ここは編集できないようになっています。テキストボックスが白ベースなので入力できそうにみえますよね。
当初、文字入力とジェスチャ入力の両方をサポートしようとしてバリデーションに挫折し、ジェスチャ入力のみに
絞った経緯があります。今はCocoaOnigurumaを使えるようになったので手入力もサポートしてもいいかもしれませんね。
検討してみます。

>ジェスチャ入力パネルでのOption+ジェスチャ

これは元々できないという事になっていたのをアナウンスし忘れていました。
よって、ご指摘の通り2ボタン以上のマウスがないとジェスチャのカスタマイズができないですね。
と言いたいところでしたが、僕も知りませんでしたがsenbeyさんのコメントにあるように
テキストフィールドを一度クリックすると効くようになるようです。
もしくは僕も愛用している
KeyRemap4MacBook
http://www.pqrs.org/tekezo/macosx/keyremap4macbook/index.html.ja
という最強のキーボードリマッパーが最新版でマウスキーに対応していますので
それを使うという方法もあります。
僕のMacBookで試したところLRロッカージェスチャはなぜか右クリックになってしまいますが、
RLロッカージェスチャは可能です。KeyRemap4MacBook++

>senbeyさん
僕も一時Optionキーを押しまくってましたw
エクスポゼをしてるときのOptionが一番ビックリしました。便利便利。あれをデフォルトにして欲しいくらい。

>一旦テキストボックスをクリックすると登録が可能になりました。
僕の環境でも動作しました。実はその事実は知りませんでした。ありがとうございます。

>Option+ジェスチャ自体がうまく動作しません
う〜ん。再現しないですねぇ。徐々に個体差による不具合が出てきた感じですねぇ。
僕もSafariStandの最新版を使っているので環境はかなり似ているはずなんですが。
Optionキーのイベントが取れていないのかなぁ?
こちらの問題も要調査ですね。

この問題も他のユーザーの方で同じ症状の方がいらっしゃいましたらお知らせください。

Mac初心者Mac初心者 2008/07/30 18:24 はじめまして。
Safari v3.1.2を使用しているのですがこちらのマウスジェスチャがうまく機能しません。
症状としては、登録時ブラウザ使用時共にテキストエリアにフォーカスを移さないと機能しないということです。

例えば、アドレスバーやサーチバーなどにフォーカスを移してからでないと
ブラウザ上でジェスチャ機能が働かないのです。

登録時も上記で出ている症状と同じですがこちらはさほど気になりません。
再現できて改善できるのであれば是非改善して頂ければと思います。
一応ご報告まで。よろしくお願いします。

Mac初心者Mac初心者 2008/07/30 18:34 申し訳ありません。
最新版が0.0.8だということを知らずにこのバージョンを使っていました^^;

最新版に入れ直しましたら無事使えるようになりました。
どうもありがとうございました。

griffin-stewiegriffin-stewie 2008/07/30 18:45 > Mac初心者さん
無事に動作したようでなによりです。
ブログにちゃんと最新版へのリンクを貼ってないのが悪いですよね。
時間が取れるときにそのあたりをメンテしておきます。

プロフィール

griffin-stewie

griffin-stewie

遂にプログラマの端くれに。ここで述べられていることは私の個人的な意見に基づくものであり、私の雇用者には一切関係ありません。