Rainmeterで日本の祝日がわかるカレンダーのスキンって,あまり見たことない.というか管見の限り,ないんじゃないかと.
Rainlendar使えとかって話もあるけど,あれだって無料版ではローカルのicalしか読み込めないようだし.
なので,作ってみた.ひな形にするのはLuaCalendarのバージョン3.1.
このカレンダー,外部ファイルで与えられた祝日リストを読み込んで表示する.この祝日リストを毎年手書きで書き換える必要がある(日本は毎年,祝日が前後するので).
なので,このリストを書き換えましょう・・・てんじゃ面白くないし,面倒くさい.Googleカレンダーから「日本の祝日」 を読み込んでやろうってこと.
その結果が↓.見た目を自分好みに多少いじってある.祝日にマウスカーソル合わせると,ポップアップで祝日名を表示してくれる.
とりあえず,改造済みのスキンをココにおいておきます.
このスキンのキモはRainmeterとLuaの間でのデータ送受信.つまり,
なんでこんな面倒くさいことをしているかというと,現バージョンのRainmeterでは,Luaの拡張ライブラリをサポートしていないから.
Rainmeterでは将来的にLuaの拡張ライブラリをサポートするかもね,とのこと.
もし拡張ライブラリがサポートされるようになったなら, Lua上から直接Google Calendar APIを叩くことができるのに.
で,以下,注意.
これは,RainmeterとLua言語の間でのデータのやりとりで発生するもの.
時間があれば,もう少しなんとかならないかスクリプトを眺めるつもりだけれど,現状使用に耐えうるかな,という感じ.
実際,私の使っているデスクトップはどれも基本つけっぱで,ログアウトすらしない.なので,これで十分.
とはいえ,今の設定のままで2014年までの祝日を表示できるので, とりあえず満足.
いろいろ適当に改造したんで,動かなかったり,メモリ食ったりするかもしれない.
私の環境では問題なさそうなんで,ひとまずこれで.
余裕があったら,メンテナンス性を向上させるようにVariablesに変数(っていうか,これは定数って言い方の方がいいんじゃないのかな)を追加したりするかも.
Rainlendar使えとかって話もあるけど,あれだって無料版ではローカルのicalしか読み込めないようだし.
なので,作ってみた.ひな形にするのはLuaCalendarのバージョン3.1.
このカレンダー,外部ファイルで与えられた祝日リストを読み込んで表示する.この祝日リストを毎年手書きで書き換える必要がある(日本は毎年,祝日が前後するので).
なので,このリストを書き換えましょう・・・てんじゃ面白くないし,面倒くさい.Googleカレンダーから「日本の祝日」 を読み込んでやろうってこと.
その結果が↓.見た目を自分好みに多少いじってある.祝日にマウスカーソル合わせると,ポップアップで祝日名を表示してくれる.
とりあえず,改造済みのスキンをココにおいておきます.
このスキンのキモはRainmeterとLuaの間でのデータ送受信.つまり,
LuaCalendar.iniのmeasureでGoogla Calendar APIを叩いて祝日リストを取得ということをしています.
↓
取得したデータをLuaからSKIN:GetMeasure(),GetStringValue()で読み取ってやる
↓
Luaで整形して,正規表現にしたがってキャプチャーしたデータをテーブル(Luaでは配列変数をこう呼ぶらしい)に格納
なんでこんな面倒くさいことをしているかというと,現バージョンのRainmeterでは,Luaの拡張ライブラリをサポートしていないから.
Rainmeterでは将来的にLuaの拡張ライブラリをサポートするかもね,とのこと.
もし拡張ライブラリがサポートされるようになったなら, Lua上から直接Google Calendar APIを叩くことができるのに.
で,以下,注意.
- 起動直後はGoogleカレンダーからのデータ取得に時間を要するため,祝日がうまく表示されない.
これは,RainmeterとLua言語の間でのデータのやりとりで発生するもの.
時間があれば,もう少しなんとかならないかスクリプトを眺めるつもりだけれど,現状使用に耐えうるかな,という感じ.
実際,私の使っているデスクトップはどれも基本つけっぱで,ログアウトすらしない.なので,これで十分.
- 必要に応じて,Variables.incのStartYearに取得するリストの開始年を入れる.
とはいえ,今の設定のままで2014年までの祝日を表示できるので, とりあえず満足.
いろいろ適当に改造したんで,動かなかったり,メモリ食ったりするかもしれない.
私の環境では問題なさそうなんで,ひとまずこれで.
余裕があったら,メンテナンス性を向上させるようにVariablesに変数(っていうか,これは定数って言い方の方がいいんじゃないのかな)を追加したりするかも.
0 件のコメント:
コメントを投稿