クリップボード履歴ツール CLCLCL の設定ファイル
2010/09/04
Clojureで作っているクリップボード履歴ツール CLCLCL の機能拡張を、ぼちぼちとしてます。
まず、現在の機能について。
http://sourceforge.net/projects/clclcl/ からダウンロードしたものを解凍して、clclcl というシェルスクリプトを実行すると、システムトレイ(タスクトレイ)に、アイコンが追加される。一定時間毎に、クリップボードを監視して、JavaDB(derby)に記録していく。システムトレイのアイコンをクリックすると、DBに格納してあるクリップボードの履歴がメニューが表示され、クリックすると、選択したクリップボード履歴をクリップボードに、格納する。
今回、現在の機能に加えて、設定された定型文字列をCLCLCLから呼び出してクリップボードに格納することができるようになりました。(現時点ではsvnへのコミット済で未リリース) あと、いくつかの動作を設定ファイルでカスタマイズできるようにもしました。動作設定ファイルと、定型文字列設定ファイルの形式は、以下のようになっています。
設定ファイル(~/.clclcl/clclcl.conf)
{ :list-max 25 :font-name "VL Pゴシック" }
現在の設定項目は以下です。
設定項目 | 内容 | デフォルト値 |
---|---|---|
list-max | メニューに表示するクリップボードの履歴の数 | 30 |
font-name | メニュー項目のフォント名 | VL Pゴシック |
font-size | メニュー項目のフォントサイズ | 12 |
watch-interval | クリップボードを監視するインターバル(ミリ秒で指定) | 3000 |
定型文字列設定ファイル(~/.clclcl/templates.clj)
[ {:name "My MailAddress" :data "smeghead@example.com"} {:name "clclcl" :data "http://sourceforge.net/projects/clclcl/"} "some text" ]
mapのvectorとし定義する。mapの:nameとしてメニューに表示するラベルを定義し、:dataとしてクリップボードに格納する文字列を指定する。
ラベルとクリップボードに格納する文字列が同じでよければ、mapでなく文字列を指定することも可能です。
設定ファイルはS式
Lisp系の言語は、設定ファイルをS式にしとけばreadするだけで設定ファイルの読み込みが可能になるので便利なんだけど、Clojureの場合、S式に見えない。JSONみたいに見える。わかりやすくていいと思う。
今後
今後の機能追加の予定は、以下のようなことを考えてます。
- 定型文字列の定義に関数を指定可能にする。
- これができると今日の日付とかも貼り付けることができる。
- いや、もっといろいろ変なこともできるようになる。RSSを読んで結果を貼り付けるとか。Clojureでできること全て。
- 定型文字列を、階層で表示することができるようにしたい。
- 上の関数を指定可能にするのにも関係するけど、関数が文字列のリストを返したら階層化されたメニューを表示する。とか
- キーボードでCLCLCLのメニューを呼び出せるようにしたい
- これは、考えてみたけど、java側だけでやるのは難しそうなので、Gnomeとかの機能と連携して実現できるようにしたいと思う。
- 具体的に言うと、既に起動してるCLCLCLがある状態で、再度起動しようとしたら既に起動しているCLCLCLのメニューをを開くように実装する。とか。