2008年3月13日木曜日

[プログラミング][Screenlets][Python]それは気付かなかった・・・Orz

今日はScreenletsのウィジェットを作るべく、サンプルスクリプトとにらめっこしてました。
まず、本家サイトのDevelopers Documentのページを参照し、最下段からTemplate.tarをDLします。よーはテンプレートですね。こいつをベースに改良していきます。
これを$HOME/.screenlets以下に展開し、Template/TemplateScreenlet.pyを編集していきます。ファイル名やディレクトリ名は適当に後から変更します。
まずはどんなことが書かれているかチェック。オプション項目の書き方が面倒くさそう^^; 簡単なサンプルだけあってさほど難しくありません。パッと見は色々ごちゃごちゃと書いてあってややこしそうですが、コールバック関数のところは実は半数以上が空の関数だったり。まぁ必要に応じて実装しなさいってことなんでしょう。今は放っておくとします。
中身の確認ができたらディレクトリとファイルをリネームします。Templateのままってのも癪ですしね・・・。
で、スクリプトファイルも編集していきます。サンプルは「Example」ってのが大量に使われてますから、こいつを自分の作りたいウィジェット名とかに置換すると、とりあえずそれっぽくなります。そんでもって、スクリプトのクラス名をTemplateScreenletからなんぞ適当に変更します。
が、私はここではまりましたOrz
Javaだとファイル名とクラス名は一致ってことらしいですが、Pythonスクリプトでは、クラス名に特別制限はありません。なのでほいほいさっさと適当に名前決めてスクリプトを作ったんですが、これをScreenletsのセッションマネージャに渡しても登録してくれない。
「セッションの作成に失敗しました! 正しいクラスオブジェクトを指定してください!」
ってエラー(ホントは英語。それっぽく意訳してます)がががが。文法は間違ってないし、クラスオブジェクトもちゃんと作成できる。けどセッションマネージャには蹴られる。
散々悩んだんですが、ふと他のちゃんと動いてるスクリプトを眺めていると
「そーいや全部クラス名の最後に"Screenlet"ってついてるぞ・・・?」
っってなことに気付きました。
「まさかね・・・」と思いつつ、クラス名の最後に"Screenlets"を追加したらあっけなくウィジェットが立ち上がりましたOrz
Javaじゃねぇんだからさ・・・。そんな縛りつけなくてもいいじゃんかよ・・・。
私が見落としているだけかもしれませんが、そのようなDevelopers Documentに記述は一切見当たりませんでした。大事なことなんだから書いといてくれよ・・・。
とりあえずこれで簡単なウィジェットなら作れそうです。ScreenletsはSVGしか扱えないと思ってましたが、標準でSVGの他にPNGも扱えたみたいです。SVGだと拡大縮小がサポートされますが、PNGだとgtkモジュールをインポートして自前で拡大縮小の処理をやらないといけないのが玉に瑕でしょうか。gtkモジュールをインポートするなら画像フォーマットはあらかたどれでも使えるからなぁ・・・。結局gtk使えってことなんでしょう。
テキストファイルをいじくってどーのこーのってことはよくやりますが画像は今までまともに扱ったことがないので、ちょっくらPyGTKのサンプルでも眺めつつ楽しみたいなと思います。
にしても、ScreenletsとPlasmaは互換性ないんかなぁ。せめてコンバートできてくれたらいいんだけど。


今日紹介する曲も昨日に引き続き、明るくポップなナンバーです。
結構いいと思うんだけどなぁ。再生数がかなり少ない>< ま、埋もれていようといい曲はいい曲ということで^^
【ニコニコ動画】【鏡音リンオリジナル】青空に春色【青春パンク】(修正版)
青空に春色 by zyun
鏡音リン・レンは結構力強い歌い方ができるので好きなんですが、いかんせん活舌が難しいらしく、あんまり上がってこないんですよねぇ^^; 声はいいだけにもったいない感じ。
今後に期待ですねぇ。

0 件のコメント:

コメントを投稿