2012年4月22日日曜日

Rainmeter, MyStorage skin v3.1, Update, Multi agenda

なんか最近,このブログのアクセス数が跳ね上がっている.どこかで晒されたのかな.
まあいいや.前回のエントリーでスキンを公開したわけだけど,その中のAgendaをアップデートした.
具体的には,複数のGoogleカレンダーの予定を表示できるようにした.スキンはこちら
こんな感じ.マリみての新刊が発売されるんですね.買わないと.それはともかく,設定方法などの説明をする.
構造としては,Calendarと同じように,Luaスクリプトでゴリゴリ整形,配列に突っ込んでいる.スクリプトのベースは,前のバージョンのAgendaである.無茶しやがって・・・という声が聞こえてきそうなくらい,スパゲッティなスクリプトになっている.F.S.M.まんせー.

さて,まずVariable.incのAgendaセッション
Agenda_Url1=https://www.google.com/calendar/feeds/japanese__ja%40holiday.calendar.google.com/public/basic
Agenda_Url2=
Agenda_Url3=
MaxResults=12
Color1=200,0,0,160
Color2=128,192,255,160
Color3=192,255,128,160
Url1~3が表示するGoogleカレンダーのURL.デフォルトでUrl1には「日本の祝日」カレンダーを入れてある.このURLは,Googleカレンダーから知ることができる.必要ないと思うが,一応書いておこう.
個人情報に抵触するところは黒塗りにしてある.まず,Googleカレンダーにアクセスし,URLを知りたいカレンダーの設定を開く.
設定のうち,「限定公開」のxmlをクリック.ポップアップが出るので,
赤枠で囲まれた部分をコピーする.このURLをVariable.incのAgenda_Url1~3のどこかにペーストすればいい.

Variable.incのMaxResultsは,カレンダー毎に最大何件のイベントを取得するかの設定.取得したものが全て表示されるわけではないので注意が必要である.
これは,Agenda.iniに設定されている[AgendaX] Meterの数との関係で,適当に設定すればいいと思う.
(Agenda.iniには,デフォルトで[Agenda1]から[Agenda18]まである.好みに応じて増減させたらいい.)

Color1~3は,カレンダーの色.
(ここまで書いて気が付いたけど,これはAgenda.Colorとかにしておかないと,今後他の設定とかぶるなぁ.Agenda_Urlも他の変数と命名規則が違う.この辺は次回のアップデートで修正する.)

Agenda_Url,Colorともに,表示したいカレンダーの数に応じて,適宜増減させること.

続いてAgenda\Script.luaを少しいじる必要がある.Script.luaを開くと,1行目から,
Properties={
DayLabels='日|月|火|水|木|金|土';
HeaderFormat='year年month月day日(wd)';
CalNum=3;
CalRow=18;
}
となっている. DayLabels,HeaderFormatは,いずれもヘッダー部分に表示される今日の日付のフォーマットに関係する.DayLabelsをSun|Mon・・・とすれば,ヘッダーの曜日表示が英語になるということ.
次のCalNumとCalRowは環境に合わせて変える必要がある.CalNumは表示したいカレンダーの数(=Agenda_Urlの数),CalRowはAgendaスキンの行数(=Agenda.iniの[AgendaX]の数)となっている.先述のとおり,これは各人の設定や改造によって増減するものなので,各人の環境に合わせて,こちらも変える.
(そのうち,Variables.incから読み取るようにすると思う.)

2012年4月14日土曜日

Rainmeter, Calendar, Schedule ( Agenda) with Google Calendar by Lua Script, Gmail, "MyStorage" Skin Version Up

20120422 以下は古い記事.V3.1にアップデートした.

これまで,Rainmeterでいくつかのガジェットを日本人がちょこっと幸せに使える改造を紹介してきた.今回は,もう少し幸せになるために,Luaスクリプトを組んでみた,という話.私謹製スキンのアップデート
こんなものが入っている↓

Agenda, Analog Clock, Calendar, CPU Usage, Gmail, GPU Usage, Memory Usage, Network Traffic, Thermometer, Top Process(CPU, Memory), Weather Forecast

今回のアップデートで追加したものの解説↓.

1.カレンダーの追加
以前,LuaCalendarを取り上げて,Googleカレンダーから日本の祝日を取得,表示するというのを書いた.でも,データの読み込みタイミングなんかが課題として残った.あと,私はカレンダーを2か月表示しているので,1か月表示だけのLuaCalendarだと少し物足りない.ということで,Luaスクリプトを使って,カレンダーを作ってみた.LuaCalendarを参考にしつつ,全く違うものになっている.このスクリプトでは,ほっといても祝日を再読み込みしてくれるので,LuaCalendarよりちょこっと便利.カレンダーは2か月表示.
Variables.incの
;---Calendar Values---
StartYear=
に,取得する祝日の開始年を入れる.とりあえず,Variables.incでは,2012年1月1日から取得するように設定してある.

2. 予定リスト
GnometerのGcalみたいなもの.Variables.incファイルの
;---Agenda---
GcalURL=
に,表示したいカレンダーの限定公開URLのxmlアドレス
https://www.google.com/calendar/feeds/【ユーザ名】%40gmail.com/【アドレス】/basic
赤字部分を入れる.

3.Gmail
これもGnometerのGmailみたいなもの.Variables.incファイルの
;---Gmail---
User=
Pass=
にGmailのユーザ名(@の前)とパスワードを入れる.メールにカーソルを合わせると,ツールチップでメール文のサマリーを表示する.

4.その他
  • アナログ時計を追加.文字盤を無理やり作ってみたり.
  • 言語ファイルの追加.Lang\ja_JP.incを参考に,他の言語も作成可能.ファイルのコードとか変えなくちゃいけないので,多少面倒だと思うけれども.
  • グラフ位置等を修正

2012年4月8日日曜日

Rainmeter, Google Weather API, Forecast

RainmeterでGoogle Weather API(非公式)を叩いて,天気予報を表示させるガジェットを作った.これは,MacでPHPとGeektoolからGoogle Weather APIを利用していたことを思い出したので,せっかくならRainmeterでもやってみようと思ったわけだ.
どうも,Rainmeterの天気予報スキンの多くは,海外のサイトを利用している.なので,表示が英語になったりして,日本人の私には直観的でない.Google Weather APIは日本語出力をしてくれるので,その辺が楽.
なんだかんだいうが,私がYahooよりGoogleが好きだ,というのが一番の理由だったりもする.どうせ個人が好き勝手に自分のデスクトップを使いやすいようにしているだけなので,どこのサービスを使ってもいいじゃないか.
せっかくなので先日公開したうちのスキンをアップデートして,天気予報を同梱した.
↓こんなことができる.アイコンは,大嫌いなYahoo.com Weatherから拝借した.それをこういった形で公開することには,いろいろ問題もあると思うが,このスキンはあくまで私が個人的に利用することが前提なので,まあ良しとしていただきたい(誰に?).


設定方法を書いておく. Weather.iniの[Variables]で,
[Variables]
@include=#ROOTCONFIGPATH#Variables.inc

City="Shibuya"
City_Sub="Shibuya, Tokyo":"東京都渋谷区"
赤字の部分を適宜変えるだけ.その場所がAPIで取得できるかどうかは,
http://www.google.com/ig/api?weather=Shibuya&hl=ja
この部分を変えて,ブラウザでアクセスしてみればわかる.
これだけで,現在から3日後までの天気を取得できる.現在の天気には,ポップアップで湿度と風向,今日の天気予報が表示される.

2012年4月6日金曜日

Rainmeter, CPU Usage, GPU Usage, Memory, Network, Top Process, Thermometer

今日は久しぶりにRainmeter.プラグインを使って,いろいろな情報を取得できるよって話.
作ったスキンはこんな感じ.↓
展開先(マイドキュメントのRainmeter\Skins\MyStrage)をみるとわかるが,プラグインを含む他人様のスキンを同梱してしまっている.が,このブログ自体が個人の備忘録なので気にしてはいけない.
で,このスキンを動かすための説明をちょっとだけ書いておく.
さすがに,Rainmeter単体でここまでの情報を取得することはできないので,他のユーティリティと連携させることになる.
GPU情報は,MSI Afterburnerの値を取得している.これに,このフォーラム記事中にあるMSIAfterburner.dll(32bit,64bitのいずれか)をダウンロードして,RainmeterのPluginsフォルダに突っ込む.

温度の部分は,SpeedFanの値を取得している.値を取得するプラグインは,Rainmeterに標準で含まれている.インストールすればわかるが,SpeedFanを起動すると,中央右部分に各部の温度が表示される.この表示される部分の順番は,個人の環境によって異なるようなので,確認すること.
上の図で中段左側に0RPMが並んでいるのは,本来ならば各部のファンの回転数が表示される.私のパソコンは自作で,CPUファンやケースファンをつけていないためだ.↓こんなものつけている.Core i5 2400sを使っているが,十分冷える.

話を戻す.どうやって確認するかというと,Configureをクリックして設定画面を開く.Temperaturesタブに表示されている順番にRainmeterが値を拾ってくるようだ.

↑私の環境では,0=GPU,1=System(チップセット),9=Core0となっている.Thermometer.ini中の値を適宜変更してほしい.たとえば,
[Measure.SpeedFan.Temp.GPU]
Measure=Plugin
Plugin=Plugins\SpeedFanPlugin.dll
SpeedFanType=TEMPERATURE
SpeedFanNumber=0
赤字の部分が該当箇所.「~Temp.GPU」のところと同様に,System,Core1・・・と変更すること.
SpeedFanでは1番目のコアはCore0と表示されている.0が1番だと普通の人はあまりなじみないだろうと思い,Rainmeterでは0番コアをCore1と表示,以降,3番コア(SpeedFan上のCore4)をCore4としてあるにしてある.この辺は,表示上の好みの話なので,個人の好きにすればいいと思う.
Intel i7環境では,Coreが8まで表示されると思う.その時は,適宜MeasureとMeterを増やすことになる.2コア環境では逆にコメントアウトするなどして減らすこと.
※追記
GPUとChip(System)の温度表示が整数値なっている.ファイルを更新するのも面倒なので,ここに修正方法を書いておく.小数点を表示するには,それぞれのMeterに,NumofDecimals=1を追記する必要がある. ↓の赤字部分を追加.
[Temperature.Text.GPU]
Meter=STRING
X=5
Y=14r
MeasureName=Measure.SpeedFan.Temp.GPU
StringStyle=NORMAL
StringAlign=LEFT
FontColor=#Font.Color.White#
FontSize=#Font.Height#
FontFace=#Font.Name#
AntiAlias=1

AntiAlias=1(ダブっていたので,削除して)
NumofDecimals=1
Text="GPU   %1 °C"

[Temperature.Text.System]
Meter=STRING
X=97
Y=0r
MeasureName=Measure.SpeedFan.Temp.System
StringStyle=NORMAL
StringAlign=LEFT
FontColor=#Font.Color.White#
FontSize=#Font.Height#
FontFace=#Font.Name#
AntiAlias=1
NumofDecimals=1
Text="Chip   %1 °C"
最後にCPU top5,メモリ top5はそれぞれのプロセス上5位を表示している.これも,Rainmeterの標準装備では作れいないので,ここらへんからプラグインを拾ってきて,上述のMSIのやつと同様に,プラグインをプラグインフォルダにつっこむ.ただ,このプラグイン,64bit環境では,まだバグがあるっぽい.私の環境では問題なく動いているので,まあ良しとする.