Hatena::ブログ(Diary)

ザリガニが見ていた...。 このページをアンテナに追加 RSSフィード

2008-06-15

MinimumMenu 0.1について

ここ最近コツコツと作っていたminuプロジェクト(Cocoaアプリケーション)を、せっかくなので公開することにしました。

使い方

MinimumMenu(日本語環境:ミニマムメニュー)は、メニューバー右側のアイコンのメニュー*1が、文字メニューと重なって隠れてしまう場合に重宝します。

  • マウスカーソルをスクリーンの一番上に移動すると、水色のラインが発光します。
  • それを一回クリックすると、文字メニューが最小になり、アイコンのメニューを表示するスペースが最大になります。
  • もう一度クリックすると、直前のアプリケーションに戻ります。
  • 文字メニューが最小の時、メニューバーには短縮名で Minu(日本語環境:ミニュー)と表示されます。(以下、「Minu」と表記することにします。)

アプリケーションとしての機能は上記の通りで、見ての通りほとんど何もしません。Minuがアクティブになる直前にアプリケーションを記憶して、クリックで戻すことができるだけの機能です。機能がないのでメニューは一つだけです。結果、Minuがアクティブになるとアイコンのメニューを表示するスペースが最大になるのです。サンプルアプリケーションみたいなものです。

しかし、Cocoaアプリケーションとして公開するために必要な必要最小限の機能は、出来るだけ実装するようにしました。今後、自分がちょっとした機能の便利ツールを作りたくなった時の足掛かりになるといいな、という希望を持っています。Minuには機能がほとんど無いので、あとは欲しい機能を追加するだけでいいのです。

再利用またはサンプルになりそうな実装

  • ユーザーデフォルト
    • ユーザーの環境設定を保存できます。また、アプリケーションのデフォルトも設定してあり、その変更も.plistファイルなので容易です。
  • ローカライズ
    • 日本語にローカライズしているので、それを足掛かりにその他の言語環境にも対応し易いと思います。(ローカライズにはiLingualを利用)
  • 透明ウィンドウ
    • 便利ツールを作る時、透明ウィンドウを利用することはありそうなことです。透明ウィンドウを利用すればデスクトップの好みの位置に、好みの形状で何でも表示することができます。minuも透明ウィンドウを利用しているので、それを足掛かりに拡張することが容易です。
  • マウスイベント処理
    • mouseEntered:、mouseExited:、mouseDown:等のマウスイベントを直接処理しています。やはり便利ツールを作る時には必要な処理になりそうです。(ドラッグ&ドロップの実装とか)
  • CocoaBindingの利用
    • CocoaBindingを使えば、オブジェクト間で値を連携するためのコードが激減します。minuでもユーザーデフォルトの処理で利用して、ずいぶん楽をしています。
  • Info.plistの設定
    • アイコンやアプリケーション名、バージョン情報、著作権情報等のアプリケーションの基本的な情報を、ちゃんと表示できるようにInfo.plistやInfoPlist.stringsで設定しています。

minuプロジェクトは2008-05-22の以下の日記から始まっています。(3歩進んで2歩下がる的な公開までの軌跡が続きます。)


開発環境

動作確認

  • Mac OSX 10.5.3(Intel
  • Mac OSX 10.4.10(PPC)

ダウンロード

MinimumMenu 0.1のダウンロードページへ

MinimumMenu 0.2b1のダウンロードページへ

MinimumMenu 0.3のダウンロードページへ
  • アプリケーションメニューが占有する領域を最小にすることを目指す
    • アプリケーションメニューを「Minu」からアイコン表示に変更
    • アプリケーションメニューを非表示にする設定を追加
MinimumMenu 0.3.1のダウンロードページへ
  • 青いラインがメニューバー上部に表示されない場合の対策。
  • 解像度を変更した時、青いラインの長さが不足する対策。
MinimumMenu 0.4.5のダウンロードページへ
  • PreferencesのTracking around displayを追加。「入」にすることで...
    • ディスプレイの左辺・右辺・下辺へのマウスオーバーによってMinimumMenuがアクティブなる。
    • 但し、Dcokが出現するポジションでのマウスオーバーは無効。(意図しないアクティブを避けるため)
  • コーナー四隅の64ピクセルは、反応しないエリアとした。(誤作動防止のため)
  • アプリをアクティブにする方式で切り替えるように変更。(従来はアプリを起動する方式で切り替えていた)
    • ウィンドウなしで起動中のアプリが、新たなウィンドウを勝手に開いてしまう対策。
    • タイミングによっては、終了したはずのアプリが意図せず再起動してしまう対策。
    • ウィンドウの重なり順序も完全に維持される。

f:id:zariganitosh:20141128161945p:image:w299

*1:メニューバーアイテムと呼ばれているようです。

なまえなまえ 2009/08/15 12:50 これ、10.5.8ではうまく働かないようですが

zariganitoshzariganitosh 2009/08/15 17:07 コメントありがとうございます。
自分のMacBook OSX 10.5.8の環境では今まで通り動いていたので気付きませんでした。
宜しければ、"うまく働かない"状況と利用環境を詳しく教えて頂けると助かります。

ponpon 2009/09/09 18:39 初めまして、以前からMinimumMenuを大変便利に使わせて頂いてます。
snow Leopardで使用すると、起動と表示、MinimumMenu最初のクリックまでは大丈夫なのですが
元のアプリにフォーカスを移す所で異常終了するようです。
もしもsnow Leopardに対応して頂ける予定がありましたら嬉しいです。

zariganitoshzariganitosh 2009/09/09 20:58 初めまして、ponさん
MinimumMenu を Snow Leopard でも稼働できるようにしてみました。
http://github.com/zarigani/MinimumMenu/tree/master

とりあえず動くことを目指していて、あまり検証できていません。
日本語リソースも削除してしまいました。(うまくビルドできなかったので)

自分の白MacBookの10.6環境では、今のところ調子良く動いているようです。
こんなちっぽけなソフトウェアですが、需要があるということが分かって嬉しいです。

zariganitoshzariganitosh 2009/09/09 21:22 すいません、ちゃんと動くかと思っていたら、影武者のようなアプリも起動していました。
MinimumMenuについて、もう少し、悩む必要がありそうです。

ponpon 2009/09/10 18:55 わざわざ調べて頂けて嬉しいです、ありがとうございます。
FinderがCocoaになって色々変わった所も多いのでしょうね。

13インチと15インチのMacBookがメインマシンのため、
MinimumMenuは再インストール時必須アプリリストに入っています。
使えなくなって改めて気付いた便利さを噛み締めつつ、気長に待とうと思います。

zariganitoshzariganitosh 2009/09/10 19:58 影武者のようなアプリが起動してしまうのは、自分の環境が原因でした。
(同じ名前の過去のバージョンが、同時に起動していたようです。)

http://github.com/zarigani/MinimumMenu/tree/master

そのため、上記ページに置いてあるMinimumMenuで問題なさそうです。

ponpon 2009/09/11 00:00 早速頂いてきて起動項目に入れました!
これで遠慮なくメニューバーアイテムを増やせます。
素早い対応本当にありがとうございました。

keizo56keizo56 2009/09/18 15:37 初めまして【感じ通信】の keizo と申します。
ミニマムメニューの Snow Leopard 対応版が出たとのことで本日導入させて頂きました。そこで3つ質問及び報告があります。

一つは、以前自分が使用していたバージョン 0.1 は、マウスをメニュー部分にフーバーするだけで、隠れていたメニューバーアイテムを表示していたと思ったのですが、今回のものは青いバーが出てからクリックする仕様になったのですか?

次に時たまメニューバーに近づけても青いバーが表示されなくなる現象を経験しています。
今のところ Safari 4 と MacJournal で経験しています。その場合は⌘タブでミニマムメニューを表示させれば何度かは回避出来るようですが、また同じ現象になるようです。

最後に AppleScript のスクリプトメニューの仕様が変わったせいなのか、ミニマムメニューの0.2b1を導入してからスクリプトメニューのアイコンが表示されなくなってしまいました。これはミニマムメニュー0.2b1に起因するものなのか自信はありません。ただ、0.2b1導入当初から消えてしまったので念の為にご報告させて頂きました。

以上、大変便利に使わせて頂いております。一つ目の仕様の件も多分そうじゃなかったのかと、今では自信が無くなってきました。⌘タブでミニマムメニューを選択する仕様でももちろん良いのですが、メニューバーアイテムをクリックする際はマウスをその部分に持って行くことが多いので、僕の好みなのかもしれません。なにかの参考になればと思い長文ですがご報告させて頂きました。

keizo56keizo56 2009/09/18 15:56 度々すいません。【感じ通信】の keizo です。
上記の件のうち、AppleScript のスクリプトメニューに関しては再ログインしたら表示出来るようになりました。
お騒がせしました。

zariganitoshzariganitosh 2009/09/19 09:49 初めまして、keizo56さん。
【感じ通信】日頃から拝読しています。興味深い情報をいつもありがとうございます。

さて、ミニマムメニューの件ですが、0.1として公開している旧バージョンでは、青いラインをクリックして動作する仕様だと思っています。
http://homepage.mac.com/bebekoubou/zarigani/FileSharing29.html

ただ、途中でマウスオーバーだけで動作するバージョンも試作していました。
もしかしたら、タイミングによっては、そのバージョンがダウンロードされている可能性もあります。
自分の使い方では、マウスオーバーで反応してしまうと、意図する時以外も反応してしまう状況が多かったので、マウスクリックする仕様に落ち着きました。

また、青いバーが表示されなくなる現象ですが、バージョン0.1で自分も認識していました。青いバーをドラッグしながら操作してしまうと、それ以降、表示されなくなってしまうようです。
バージョン0.2b1では、その不具合は直したつもりだったのですが、やはり、表示されなくなってしまうでしょうか...。
自分のSnow Leopard環境では調子良く動いているのですが、もう少し利用状況の想像力を膨らませて、引き続きテストしてみます。

詳細なレポート、ありがとうございました!自分では気付けないことや要望が伝わってきて、大変参考になります。今後ともよろしくお願いします。

keizo56keizo56 2009/09/21 11:34 自己レスです。
>時たまメニューバーに近づけても青いバーが表示されなくなる現象
判明しました。自分のウッカリです。SpiritedAway という時間が経過するとアプリを隠してくれるアプリがあるのですが、
隠したくないアプリにはチェックマークが必要なのです。なんとそのチェックマークを忘れていました。
そんな訳で現在は文句なしに稼働しております。誠に申し訳ございませんでした。これからも便利に使わせてもらいます。
それとegbridgeから【ことえり】に以降を考えておりましてzariganitoshさんの一連の記事が大変参考になっています。
この場を借りてお礼申し上げます。

t0morit0mori 2009/10/07 06:20 お世話になってます。
SnowLeopardで使えなくなったと半ば諦めておりましたら、いつの間にか対応版が出ていたとは。
大変、重宝しております。今後とも継続して更新頂けるとうれしいです。まずはご挨拶まで。

Martin CleaverMartin Cleaver 2010/06/16 23:50 I often find that Minu puts it's blue line near (about an inch from!) the bottom of my screen rather than at the top.
Is there a fix for this?

I am running Snow Leopard (OS X 10.6.3)

Thanks - Minimum Menu is very useful.

Best,
Martin.

tsntsumitsntsumi 2012/05/08 00:15 初めまして。大変便利なアプリをありがとうございます。特にソースコードを公開していただいているのはありがたいです。ダウンロードしていろいろいじって楽しんでいます。
ところで、いじっているうちに画面の下の方に青い線が表示されるようになってしまいました。環境は Lion 10.7.3 で実行しています。
上の Martin さんと同じような現象と思いますが、いろいろ試してみたところ、 AppController クラスの applicationDidFinishLaunching: の中で setFrame:display: すれば画面上部に表示されるようになりました。

ご報告まで。

RyoRyo 2013/11/14 00:39 どーも、御無沙汰です^_^;

自分も上記のお二方と同じで下部にブルーの線が移動してしまう時が有ります。
MinimumMenu ; v0.3(2)
OS X Mavericks環境(MacBook Air(Mid2013) 13"モデルです。

zariganitoshzariganitosh 2013/11/19 17:11 Martinさん、tsntsumiさん、Ryoさん

たいへん長らく放置しておりまして、申し訳ありません。
この度、バージョン0.3.1を公開してみました。
変更点は、青いラインがメニューバー上部に表示されない場合の対策です。
また、解像度を変更した時、青いラインの長さが不足する対策もしてみました。

皆様のコメントが力になりました。
ありがとうございました。

RyoRyo 2014/11/19 15:08 どーもです(^^)。

OS X 10.10 Yosemite にしてみたら、いつの間にか MinimumMenu v0.3.1 が機能しなくなっておりました^_^;。

青いラインはメニューバー上部に表示されますが、肝心なモノが消えてくれません。

もし、余力がございましたら アップデートしていだだけると助かります^_^;。

zariganitoshzariganitosh 2014/11/20 14:31 お久しぶりです。

さっそくですが、
実験用のパーティションでOS X 10.10 Yosemiteを起動して、MinimumMenu v0.3.1を試してみました。
すると、こちらの環境(MacBook Pro Retina15 外付けHD OS X 10.10)では今のところ問題なく動いているように見えます。

> 青いラインはメニューバー上部に表示されますが、肝心なモノが消えてくれません。

「肝心なモノ」とは文字メニューであると解釈してます。
青いラインをクリックしてもMinimumMenuがアクティブにならない、だから文字メニューが消えない、そんな状態でしょうか?
ちなみに、MinimumMenu v0.3.1の仕様としては、青いラインをクリックすることでMinimumMenuに切り替わり、文字メニューが最小になる動作を想定しています。
マウスカーソルを移動しただけでは、青いラインは表示されますが、文字メニューは消えないつもりで作っています。

RyoRyo 2014/11/20 18:29 どーもです^_^;。

結論を先に述べさせて頂くと、
アプリの動作は問題有りませんでした。
どうやら、自分の勘違いだった様で、仕様どおりの動作をしておりました。

自分の勘違いで、青いライン を (クリックではなく)
マウスオーバーした際に動作した筈と思い込んでおりました^_^;。

お手数をお掛けし 申し訳有りませんでした<(_ _)>。

zariganitoshzariganitosh 2014/11/21 11:23 実は、マウスオーバーで動作するはず、という思い込みはRyoさんだけではありません。
他数名の方に、同様の思い込みで過去に連絡を頂いたことがあります。
思い込むということは、マウスオーバーで動作して欲しい、という潜在意識の要望があるのかもしれませんね。

という訳で、中途半端かもしれませんが、以前から作りかけだったv0.4を公開してみました。
https://github.com/zarigani/MinimumMenu/tree/master

環境設定で「All around tracking area」をチェック入にすることで、画面全周に青いラインが表示されるようになります。
上部の青いラインの挙動は変わりませんが、
左・右・下部については、マウスオーバーしただけでMinimumMenuがアクティブになり、文字メニューが最小になります。

メニューバーのアイコンを見たいだけの時って、結構あります。
そんな時は素早く、マウスオーバーだけで済ませたいです。
でも、文字メニュー操作時にマウスオーバーだけで反応してしまうと、せっかく表示した文字メニューが消えてしまう。
そんな煩わしさを解消するために、画面上部についてはクリックが必要な仕様を残し、
左・右・下部については、マウスオーバーだけで反応するようにしてあります。

RyoRyo 2014/11/23 08:00 返事が遅くなり 申し訳有りません。

早速、v0.4を使用させていただきました。

個人的には上部 メニューバーの領域のみの反応(動作)が好みです。
特に下部はDockを出そうとした際に(意図せず)反応してしまうのでチョット困りました^_^;。

後、気になる事が有りました。
v0.4だと メニューバーのブルーラインをクリックせずとも動作(表示OFF)する時が有ります。
再現性100%の条件は不明ですが、ブルーラインをマウスオーバーする位置を幾度も適当に変えると 表示OFFしてしまいます。
しかし、v0.3.1だと、この現象は起こらない様です。


あと、これは v0.3.1も同じなのですが(気が付くのが遅かったですが)、
直前のアプリケーションに戻る動作の際に、直前にアクティブになっていたアプリが Finder だと、
復帰した際に『新規 Finder ウィンドウを開く』の動作になる為、 煩わしさを感じる時が有ります^_^;。
Finderウィンドウを開いていない操作の場合も有るので.....^_^;。
Desktop に置いて有るモノを見る際などですが、それは Desktopにはモノを置くべきではないと言う事を守っていないからなのでしょうかね^_^;。
ただ、これは 動作が理解出来た事で (自分の場合)逆に使い道が有るかもしれませんが^_^;。


色々と取り留めない事を書いて申し訳有りませんでした。

zariganitoshzariganitosh 2014/11/27 10:48 Ryoさん、

動作の確認と使い勝手のご連絡ありがとうございます!
やはり単純にマウスオーバーで反応させてしまうと、意図しない反応に悩まされますよね。
そこで本意でない反応を避けるために、以下の修正をしてみました。

- Dockが出現するポジションでは、反応しないようにしました。
- コーナー四隅の64ピクセルでも、反応しないようにしました。
- 直前のアプリをアクティブに切り替える方式にしました。
-- 従来は、直前のアプリを起動する方式でした。
-- この変更によって、Finderウィンドウが勝手に開くようなことがなくなります。
-- また、他のアプリのとのウィンドウの重なり順序も完全に維持されます。
-- 重なり順序が完全に維持されるので、意図しない反応でもマウスオーバーを止めれば元に戻ります。
-- (意図しない反応でも多少は許せるかも?)

以上の修正をして、v0.4.2として公開しました。

https://github.com/zarigani/MinimumMenu/tree/v0.4.2

これでも意図しない反応が気になる場合は、All around tracking areaのチェックを「切」にして使えば、v0.3.1とほぼ同じ動作だと思います。

> v0.4だと メニューバーのブルーラインをクリックせずとも動作(表示OFF)する時が有ります。

また、上記の現象についても、v0.4.2では発生しないようにしたつもりです。
以前のv0.3.1がお好みの場合は、以下のURLからダウンロードできます。

https://github.com/zarigani/MinimumMenu/tree/v0.3.1

詳細なレポートありがとうございました!
久々にCocoaな脳に戻れました。

RyoRyo 2014/11/28 04:04 どーもです。

早速、v0.4.2 を使わせて頂きました。
All around tracking areaのチェックを「切」にして、v0.3.1 の改良版としての使い方が自分には合っている様でした^_^;。
色々と有り難うございました。
今週末あたりに、v0.4.2 の事を Blogで書かせて頂こうと考えております^_^;。

zariganitoshzariganitosh 2014/11/28 15:54 その後、v0.4.5までバージョンが進みました。

ディスプレイを囲む青いラインが目障りになってきたので、表示するのを止めました。
Tracking around display「入」の状態で、マウスオーバーでアクティブになった時は、青いラインを一切表示しません。
32ビットCPU(初代MacBook)に対応しました。(いつの間にか起動不能になっていたので)

以上は、Tracking around display(旧名: All around tracking area)を「切」にして使う限り、ほとんど関係ない修正です。


> 今週末あたりに、v0.4.2 の事を Blogで書かせて頂こうと考えております^_^;。

楽しみにしてます!

RyoRyo 2014/11/30 19:20 どーもです。

以下のURLにて紹介のエントリーを書かせて頂きました^_^;。
大した内容じゃ有りませんが....。
http://ryomac.blog.fc2.com/blog-entry-85.html

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証