I’ve been playing a bit with a nice program called “Rainmeter“. It calls itself a “customizable resource meter“, but actually it’s a lot more 😀 It lets you control your desktop, and do almost anything with it.
Surplus! There are already tons of prefab skins out in the wild, so the most easiest thing you can do is download one of these, install it, and enjoy it’s power ^^
But ofc, we’re going to modify and enhance things a bit
So it begins…
It started when browsing the tweakers.net “huiskamer” (a place to chat about every random subject ) I found the show-offtopic about desktops, and saw a post made by EWK. He made a very nice skin with rainmeter based on this one by White-Baron from DA.
So I downloaded them, tested them, and they where indeed pretty nice. But the combination with my pretty colourful sidebar gadgets was a real visual piece of sh*t.
So I needed Rainmeter replacements for them 😎
So I started reverse engineering the existing .ini-files from the EWK skin 🙂
Learned some code using the rainmeter-documentation.
First of all, Rainmeter uses “Measures” and “Meters”. The measure calculates things, fetches information or invents things, and the meters write them to the screen.
For example: a WebParser, to scrape information of the internet. This was used to get information from the MobileVikings-api, and from the dommel.com website 😆
We know the MV-api is hiddden behind the url https://#user#:#firstname.lastname@example.org/api/2.0/basic/sim_balance.xml . So we create a measure to fetch this from the internet 🙂
The RegExp, as described in the url above, takes this information, search for some tags, and puts the information found between those tags (which is (.*) in one big array. So the information between valid_until is stored in the 1st location, the information between data is stored in the 2nd, sms the 3th, and so on…
[MeasureWeatherRSS] Measure=Plugin Plugin=Plugins\WebParser.dll Url=https://#user#:#email@example.com/api/2.0/basic/ sim_balance.xml RegExp="(?siU)<valid_until>(.*)</valid_until>.*<data>(.*)</data> .*<sms>(.*)</sms>.*<credits>(.*)</credits>.*<sms_super_on_net>(.*) </sms_super_on_net>.*<is_expired>(.*)</is_expired>" StringIndex=1
Next step is to create another measure, which takes information out of this array, and offer it to the meter.
[MeasureSMS] Measure=Plugin Plugin=Plugins\WebParser.dll Url=[MeasureWeatherRSS] StringIndex=3
This simply takes the information located in the 3th place of our array.
And then last step, our meter
[MeterDesc] Meter=String MeasureName=MeasureSMS Text=You have %1 sms left. Y=20 W=500 H=40 FontColor=#Colour#, 230 FontSize=15 FontFace=#Font# StringAlign=Left AntiAlias=1
Which is pretty straightforward. A name, go fetch a string, our variable from [MeasureSMS], some information about the location and the size of the text put on the desktop, and some fontinformation 😎
And kapow, our first information on the desktop appears
And another thingy that was done: the time was implemented in 0-12 hours instead of going to 23h like we’re used to in Belgium ^^ Just check the url.
In the end it’s just another measure using
for hours and minutes.
Download: MV parser, original skin from EWK . Should be placed in C:\Users\*insert username*\Documents\Rainmeter\Skins . the .ini-file in MV should be edited, using your own password and username 😉 Dommel parser on demand…
And the original from the original: SimpleSentence
Lol, power-noob-fail of mendel, at first I published my code from the MV-parser with my own password in it… In plaintext 😕 OOPS