clippy
clippy 0.7公開しました
ずっとHaskellばかりやっていましたが外部ファイルをテキストに指定できるようにclippyもバージョンアップしました。併せて環境設定用のプラグインも作成しています。

clippyダウンロードページからclippyPreferenceをダウンロード・解凍し、ホームフォルダの「ライブラリ」-「PreferencePanes」にコピーしてください。
この環境設定から、使用するテキストの指定や履歴保持回数・ホットキーなどを変更できます。テキストの文字コードはUTF8固定ですのでご注意ください。また、v10.6 SnowLeopardのみの対応です。
重ね重ね申し訳ございません。また修正しました。 clippy v0.6.2公開します。
先日修正したばかりのメールアドレスをチェックする正規表現ですが、修正しました。マッチするとかしないとかということではなくて、RegexKitLiteがフリーズします(あるいは解析に非常に長〜い時間がかかるケースがあるみたいです)。別の作業中にclippyを使っていて偶然にも発見しました。残念ながら根本的な原因はわかっていませんが不要と思われるキャプチャなどをを削ることで対処療法を施しました。本当は原因解明しないといけないのですが、フリーズするのはさすがに困りますのでご勘弁ください。
メールアドレスを正規表現するのは”不可能"なことはよく知られています(と言い訳しておきます(^^ゞ)が、やはり難しいですねー。
clippyダウンロードもしくはhttp://github.com/hippos/clippy/downloadsからダウンロードできます。
ところで、clippyの環境設定用plug-inを作成中です。使用するテキストファイルとホットキーの設定・履歴の数などをユーザが指定できるようにする予定です。それにともなってアプリケーションアイコンをご提供してくれる方を募集してます。こんなアプリですが、使っても良いよという方いらっしゃいましたらよろしくお願いします。
メールアドレスの正規表現 clippy 0.6.1公開しました
先日来ご無沙汰だったclippyのソースをメンテしているわけですが、十一月にはいって立て続けにRegexKitLiteがアップデートされたのでアップデートして周辺のソースを眺めていたら恥ずかしいバグを発見しました。メールアドレスの判定の正規表現がもうダメすぎる。自分用の*@xxx.comアドレスしかマッチしません。*@xxx.co.jpとかはヒットしません。あまりの手抜き正規表現になんでこんな風になっているのか自分でも理解できません。
clippy 0.6公開しました
しばらくメンテしていなかったclippyを64ビット化しました。ようやく開発環境が整ってきたので今後を見据えての対応です。機能的な追加はありません。ただ、64ビットで動くというだけσ(^_^;)?ですが、正規表現ライブラリをRegexKit.FrameworkからRegexKitLiteに変更し、自作のエンコード判定用NKFCocoaは廃止しました。
RegexKitLiteは軽量でclippyで使うことはすべてできるし、Frameworkをなるべく使わない方が開発作業自体が楽という理由もあります。NKFCocoaを廃止したのも同じ理由。文字コード判定は一カ所しか使っていないし、まあUTF8固定という仕様でもいいかという風に考えました。なので、エイリアスが指す先のファイルエンコードはUTF8固定です。他のエンコードの方スイマセン、エンコードを修正して保存し直してください。
今後のロードマップとしてはclippyの軽量化を考えています。基本的に常駐するアプリケーションですからなるべくコンパクトにする方法を模索していくつもり。(実は、64ビット化したら少し使用メモリが増えています。がーん!)現状では自動ペーストにappscript.Frameworkを使用していますがこれが割とメモリを使います。このあたりから手をつけようかというところですが今のところ代替のメドはたっていません。
興味のある方はclippy ダウンロードページからダウンロードしてお試しください(v10.6 Intel ONLYです)ソースは、githubにあります。
clippyソースをgithubに公開しました
clippy v0.5リリースします
気になっていたバグが取れて、気をよくしたのでリクエストのあったエイリアス機能を実装してみました。長文を定型文として登録しようとすると確かにうるさい感じがするのでちょっといい感じ。
書式は、
alias:エイリアス:URLです。先頭にalias:、続いてメニューに表示したい名称を最後の:以降はURLです。URL指定はプログラマじゃない人にはあまり馴染みがなくて申し訳ないのですが、例えば書類フォルダの場合
file:///Users/YoureAccount/Documents/sample.txtのような形式です。file://を除けば、UNIX上のpathを指定する場合と同じです。ただし、フルパスで指定する必要があるので必然的に、file:///という形式になると思います。:で区切る旧来のマックの形式も考えたのですが、どちらもプログラマ以外のマックユーザには関係ないしどうせ馴染みがないんだったらということでこういう形式にしています。鋭い方はお気づきだと思いますがこの形式にしておくことで、
alias:Yahoo!:http://www.yahoo.co.jp/なんてことも一応可能です。それが何の意味があるのかと言われると困るのですが、まあ世の中定型文をどこかにWebサーバに置いている人もいるかと....ただし、こういうことやると帯域の狭い方や対象サーバが重たい時などフリーズしたかのごとくなるのでご注意を。
指定したファイルが存在しなかったりして読み込みに失敗した場合は、alias以下がそのまま表示されます。また、あまりにも大きいファイルやテキスト以外のファイルを指定したりした場合は何が起こるかわかりません。\(^o^)/
もひとつ、細かい変更ですがメールアドレスを検知した場合はこれまで無条件にMail.appを起動していましたがv0.5からは先頭にmailto:が先頭にある場合のみMail.appを起動します。mailto:がなければ普通の文字列として自動ペーストの対象になります。後、v0.5からTigerにも対応しました。そのためScriptingBridgeの使用をやめ、すべてappScriptのお世話になることにしました。have fun!
ダウンロードはこちらから
clippy ホットキーカスタマイズ対応しました
やりかけも気持ちが悪いので体調不良にもめげず一気にホットキー設定まで実装しました。

ホットキーに関しては最初から、HotKeyLib3の存在をチェックしてあったので迷わずこのライブラリを使いました。使ったのはUIインタフェースの部分だけですが、それだけでもずいぶんと手間を省くことができ短期間で完了することができました。ほんとフレームワークとかライブラリとか公開している方が大勢いて助かります。いつか、僕も受けた成果を還元したいと思う次第ではありますが何時になるやら...
objc-appscriptフレームワークはいたれりつくせり
(続き)
で、肝心の使い方なんですがobjc-appscript FrameworkではAppleScript対応アプリを制御するためのGlueクラスが必要になります。このglueクラス作成のためのツールが、binディレクトリに収納されてている、osaglueになります。このosaglueの中身はpythonスクリプトで実行にはpy-appscript/py-osaterminologyのインストールが必要です。objc-appscript/installページにあるとおり最新版を取得してインストールします。これで準備完了。例えば、Mail.appのglueクラスを作成するには、
clippy download page
clippyとは
clippyはクリップボードユーティリティです。よく使う定型文やURL・メールアドレスを登録してご活用ください。
なお、本アプリケーションは作者hipposが日々会社のwindowsで使っているQTClipというアプリケーションをマックでも使いたいと思い作成したツールです。従ってそのアイディア・仕様は(ほぼ)そのままQTClipのものであることをあらかじめお断りしておきます。
QTClip「もどき」(=clippy)を公開します
会社でQTClipという便利なクリップボードユーティリティを使っているのですが、自宅のマックでも欲しくて作りました。この手のアプリは他にもあるんでいわゆる”再発明”ってことになるんですが、ちょこちょこ作っているのが楽しかったので....
アイディア・仕様は完全QTClipのパクリです(^^ゞ。が、まあ実装は完全オリジナルなのでお許しください。また、QTClipと違うところは、










最近のコメント
13 weeks 2 days ago
22 weeks 1日 ago
22 weeks 2 days ago
22 weeks 2 days ago
23 weeks 3 days ago
23 weeks 4 days ago
24 weeks 3 days ago
24 weeks 5 days ago
25 weeks 4 days ago
25 weeks 4 days ago