- 2017年06月20日 修正追加
- 2018年08月12日 4.2対応
SamurizeからRainmeterへのお試し移住を思い立ったはいいが当たり前だけどリファレンスが英語。これを毎度毎度読むのもしんどいので日本語のメモを作る事にした。現在のstableは3.3.2 Final ReleaseなのでこのVerを元に書いていく。一連のエントリを全て書き終わる頃には現在βの4.0がstableに昇格してるような気もするが細かい事は気にしない。予想通り4.0がstableに昇格したのでそれについても記述した。
Rainmeterの記事一覧
サポートしてるscript言語
公式にサポートしてる言語はLuaのみとかなり残念。だがLoopで判定させて定期実行は出来るので実用上の問題はないが細かい制御がやりづらいのは確か。
フォルダ構成
Skinはiniファイルで記述しSkinsフォルダにおく。Skinsフォルダは通常インストールならユーザーフォルダ、ポータブルインストールならインストールフォルダにある。
- Variants
- 1つのフォルダ下に複数のiniを置く事も可能でリファレンスではこれをVariantと表現している。しかしloadは常にその中の一つしか出来ない。使うとすれば同Skinの別Verを置いておきたいとかそういう場合かねえ。
- Config
Root Config - ConfigはConfig Nameとも表現されている。
Skins\Foo\Bar\SkinName.ini
というPathだった場合、Config Nameは「Foo\Bar」となる。つまりSkins直下からCurrentまでの部分。そしてRoot ConfigはConfig NameのRootで「Foo」が相当する。 - @Resources
- 画像や音声などのResourceファイルを置く為のフォルダ。これは扱いがちょっと特殊でRoot Config直下しか配置する事が出来ない。つまりRoot Config以下のSkinは全てこのフォルダを共有する訳だ。また@Resources\FontsにあるFontファイル、@Resources\CursorsにあるCursorファイルは自動的にloadされ、FontFaceやMouseActionCursorNameで使用する事が出来る。
- @Vault 4.2で追加
- plugin、特に3rd partyの物を格納する為のplugin管理用フォルダ。今のSkinインストーラーはpluginを自動的にここに保存するようになっているらしい。自作Skinを配布するんでなければ特に気にする必要はない。
Skin iniのフォーマット
iniは下記の6種類のSectionで構成される。
- Rainmeter
- Metadata
- Variables
- Measure
- Meter
- MeterStyle
iniの記述ルールも一応書いておこう
- Section名はSkin内でユニークでなければならない。
- Option名はSection内でユニークでなければならない。
- Section名とOption名で使う事の出来る文字は数字とアルファベットのみ。
- Optionの値が"で括られている場合Rainmeterは"を無視する。つまりどちらでも良いと言う事。
- Optionの値は1行に納めなければならない。
SkinのUpdate
SkinはRainmeter SectionのUpdateで定義された間隔でUpdateされる。しかしMeterとMeasureはUpdateDividerでUpdate間隔を間引く事が可能で、Updateが1000でSectionのUpdateDividerが2ならばそのSectionは2000ミリ秒間隔で動作する。
Option Types
文字列
Text=Hello World MyVar=Hello World
数字
FontSize=42 FontSize=(40 + 2) FontSize=(2 > 1 ? 42 : 666)
Path
;SkinのCurrentフォルダからの相対Path ImageName=lolcat.png ImageName=..\lolcat.png ;絶対Path ImageName=C:\lolcats\lolcat.png ;組み込み変数を使ってのPath ImageName=#CURRENTPATH#lolcat.png ImageName=#@#Images\lolcat.png
ここまでは特に何も解説する事はない。
色を表現するには2つの方法がある。
- RRR,GGG,BBB,AAAはそれぞれの値を0-255で表す。
- RRGGBBAAはそれぞれの値を00-FFで表す。
ただしどちらもアルファ値は省略可。
SolidColor=255,0,0,255 SolidColor=255,0,0 SolidColor=(200 + 55),(2 - 2),0 SolidColor=FF0000FF SolidColor=FF0000
イベントアクションのコマンド。
;複数のコマンドを割り当てるときは[]で括る LeftMouseUpAction=[!HideMeter SomeMeter][!HideMeter SomeOtherMeter] ;コマンドが1つの場合はどちらでも良い LeftMouseUpAction=!HideMeter SomeMeter LeftMouseUpAction=[!HideMeter SomeMeter] ;#ImageFile#がスペースを含む場合は"が必要なので無難に括った方が良い LeftMouseUpAction=[!SetWallpaper "#ImageFile#"]
組み込みのコマンド以外にもWindowsのコマンドラインでも良い。
;Notepad.exeでMyFile.txtを開く LeftMouseUpAction=["C:\Windows\Notepad.exe" MyFile.txt] ;URLをブラウザで開く LeftMouseUpAction=["https://forum.rainmeter.net"]
コマンドに与える引数に"が含まれている場合のエスケープ処理
LeftMouseUpAction=[!Log """Bob said "hello" to Susan"""]
引数に変数を指定する場合もエスケープが必要になる場合がある
LeftMouseUpAction=!SetOption SomeMeter FontSize #VarName# LeftMouseUpAction=!SetOption SomeMeter FontSize [MeasureName]
とした場合、FontSizeに#VarName#もしくはMeasureNameの具体的な値が指定されてしまう。そうではなくてFontSize=#VarName#またはFontSize=[MeasureName]としたい場合は
LeftMouseUpAction=!SetOption SomeMeter FontSize #*VarName*# LeftMouseUpAction=!SetOption SomeMeter FontSize [*MeasureName*]
のように*でエスケープすれば、#VarName#または[MeasureName]という文字列が指定される。
@Include
外部ファイルをIncludeする事が出来る。しかしファイルが分割されるのは一長一短なので使うかどうかは好みの問題。リファレンスでも使い所はVariables Sectionを共有したいときぐらいだろうと言っている。
オプション名 | defalt値 | 概要 |
---|---|---|
@Include @Include2 @IncludeN |
IncludeするファイルのPathを指定する。ファイルは拡張子にincをつけ@Resourcesフォルダに配置するのが望ましい。@IncludeNとあるがNの部分は文字列でもよい。@IncludeVariablesや@IncludeMetersも有効である。 |
どのSectionのどの部分で宣言しても良い。中身は宣言したSectionの直後に挿入される。