開発者向けの情報は別の記事にします。
実績
新しいプラグイン「achievement」をバンドルしました。「設定を開く」「ペインを作成する」などのアクションを実行すると実績が解除されます。毎回起動する時、まだ達成していない実績があれば、その中からランダムに一つの実績の解除方法をmikutter_botが教えてくれます。
こんな機能を付けた理由は、ユーザと機能が増えてきて、気づかれない機能も出てきたからです。実績を解除していく事で、自然と機能に気づくことができます。実績は達成したら終わりなので、よくある起動時に出るtipsダイアログのように、毎回知ってることをガミガミ言われることはありません。たいした個数はないので、煩わしく感じることはないと思います。え、それを見返したい時はどうするかって?それはもうあるんだけどなぁ。
さらにこの実績、サードパーティプラグインが自由に追加できるようになっています。各機能へのポインタとして使用してもいいし、他にも面白い使い方があるかもしれません。
ショートカットキー
ショートカットキーに、システムで予約されているキーを使用できるようになりました。例えば、タイムラインでスペース、エンター、Ctrl+P等にmikutterコマンドを割り当てることができます。
Windowロールのmikutterコマンドの正式なサポートも開始します。これによって、「設定を開く」がmikutterコマンドになったので、ショートカットキーに割り当てることができるようになりました。
また、最近プラグインを入れすぎてキーを割り当てるのが大変という人に朗報。
はい、インクリメンタルサーチができるようになりました。一番上のテキストウィジェットに文字を入力すると、キーバインドか機能名、または表示されてませんがスラッグの何れかに部分的に一致した行だけが表示されます。「あれ、Ctrl+Sってふぁぼ以外に何か登録していたかな?」という時に使ってみましょう。mikutterでは自分で全てのキーを割り当てられますが、そのせいでわからなくなることも有りました。これで少しは良くなったでしょう。
さらに、ショートカットキーの割り当て画面も変更しました。
コンボボックスを廃止して、表示域いっぱいにコマンドリストを表示するようにしました。先ほどと同じようにインクリメンタルサーチできるようになっている他、ロール毎にカテゴライズされています。こちらも少しは選びやすくなったかな。
ん、キーバインドの下のスペースが気になるって?…君のようなカンのいいガキは嫌いだよ。
サウンド
新しく「sound」というプラグインを導入しました。サウンドプラグイン自体は音を再生せず、サウンドプラグインにルーチンを登録したプラグインの中から、ユーザが使うものを選べるというプラグインです。
OS/ディストリによっては、ALSAが導入しづらく、効果音を楽しめない環境もありましたが、相応しいサウンドサーバプラグインを選べるようになったわけです。
設定ファイルの場所
いままでmikutterは、設定等を全て ~/.mikutter/ 以下に格納しており、これを変更する手段は用意されてませんでしたが、コマンドラインオプションでパスを指定できるようになりました。
# mikutter --confroot=/var/mikutter/
これで起動すると、~/.mikutter/は使われず、/var/mikutter に読み書きするようになります。キャッシュやプラグインの位置だけを指定とかには対応していません。
デーモンモード(仮)
botを作るためにmikutterのフレームワークがつかえるようになりました。
使い方は簡単。普段使っているmikutterとは別の場所にインストールして、 core/plugin内を全て削除します。でも本当に全て消すと役に立たなくなるので、restとstreamingだけ残しておきましょう。これで、ツイートを受信するだけで何もしないbotができました。あとはいつものmikutterと同じで、プラグインをインストールしていくと、いろんな機能をつけることができます。データの蓄積や、おしゃべりbotなども作成できるでしょう。
botとして使う場合は、Consumer Key/Secretを新規取得して書き換えてください。なぜなら、mikutterフレームワークを使って作られたのがTwitterクライアントのmikutterですが、デーモンとして使うという事は、すでにそれはTwitterクライアントのmikutterではないからです。CS/CSは core/config.rb に書いてます。
そう遠くないうちに、mikutterフレームワークを別途配布したいと思っていますが、CK/CSを削除してプラグインを大半削除したものを配布することになるでしょう。
かなりうまく動きますが、まだこの機能は仮実装です。なので、端末からデタッチするなどの機能がありません。興味があれば使ってみてフィードバックをください。
その他
メモリ効率が大幅に改善されました。私自身RubyGnome2プロジェクトにメモリリークを修正するパッチを送るなどかなり力を入れました。また、mikutter自体の実装も一部見直しました。まだ稼働時間に比例してメモリ使用量が増加する傾向はありますが、今までとは比べ物になりません。
とはいっても、改善はRubyGnome2のバグフィックスによるところがほとんどなので、是非1.2.1以降のRubyGtk2を使用してください。
書き忘れていること
分かってたら書き忘れんやろ
試すには
今回から開発用のメインリポジトリをGitに移行しました。現在Subversionは、リリース時にしか更新していないので、開発中のmikutterを試したい人は、WebページからGitリポジトリを探してきてください。
まとめ
mikutter 0.2.2に搭載する予定の機能のうち、実装が終わっていて、且つユーザに関係することを簡単にまとめました。前回と違って、今回は期間の割りには多くの新要素を追加できると思います。正式版の提供は4月前後になりそうです。3月中にプレビュー版が出せるといいのですが。
この年度末は、数年ぶりにデスマーチにならなさそうなので、3月にもかかわらずmikutterの開発を続けています。なんだか3月じゃないみたいですね。ありがたいことに心配してくれる人もいますが、そんな感じなので御心配なく。もうすぐ春が来てしまうので、寒いうちに彼女とデートしてきます。こんな事ばかりしていたらなかなか進まないんだけど、冬のデートっていいですよね。