It is currently April 23rd, 2024, 9:52 am

Customizing the Rainmeter Installer

General topics related to Rainmeter.
User avatar
Kaelri
Developer
Posts: 1721
Joined: July 25th, 2009, 4:47 am

Customizing the Rainmeter Installer

Post by Kaelri »

I've had a thought, and I'd like to know whether this is both doable and ethical.

The Rainmeter installer archive includes a "skins" folder, which obviously contains Tranquil, the default config. I would like to create a custom installer that includes a second theme - say, Enigma - and adds it to the user's skins directory alongside Tranquil when Rainmeter is installed.

First, I want to make sure this is ok. I don't expect a problem, given Rainmeter's open-source nature, but better safe than sorry.

Second, if so, how would I go about it? Can I add a folder to the .EXE archive directly, or do I need to recompile it? In either case, what programs or tools will I need?

I appreciate any advice. :)
User avatar
jsmorley
Developer
Posts: 22629
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: Customizing the Rainmeter Installer

Post by jsmorley »

Kaelri wrote:I've had a thought, and I'd like to know whether this is both doable and ethical.

The Rainmeter installer archive includes a "skins" folder, which obviously contains Tranquil, the default config. I would like to create a custom installer that includes a second theme - say, Enigma - and adds it to the user's skins directory alongside Tranquil when Rainmeter is installed.

First, I want to make sure this is ok. I don't expect a problem, given Rainmeter's open-source nature, but better safe than sorry.

Second, if so, how would I go about it? Can I add a folder to the .EXE archive directly, or do I need to recompile it? In either case, what programs or tools will I need?

I appreciate any advice. :)
It's doable and ethical, but I for one would regret seeing it and think it would be harmful to Rainmeter overall. The reason isn't the matter of the Enigma skin being distributed with Rainmeter itself included. I can't see how it matters how Rainmeter is distributed. The issue is with multiple "versions" of Rainmeter floating around. There should be a single source for users to go to get the latest and greatest version of Rainmeter, and that source is the Rainmeter Google Code site. Activity on Rainmeter is really picking up, more people are becoming involved in development of plugins and even the core code, and I expect to see improvements to Rainmeter in the distribution package available on the main site more and more often.

So how do you propose to keep all the versions of "Enigma including Rainmeter" current on DevArt, Customize.org and who knows where else it spreads out to? Are we forever to be deluged with users with problems only to find out that "oh, that's the ENIGMA version of Rainmeter, it works differently". I for one dread the thought. I'd far prefer to see us just add Enigma as one of the "default skins". There is work underway to replace Tranquil with at least one and perhaps several "default" skins in the installation, and I wouldn't have any problem with having Enigma be one of them.

If you want to go your own way and put out a version of Rainmeter specific to Enigma, in effect "Enigma with Rainmeter" instead of "Rainmeter with Enigma" that's your call. You will need Visual Studio 2008 C++, Python for the installer and TortoiseSVN to download the source code from Google Code. In my opinion it's going to cause problems for the Rainmeter community though, and I will regret your decision.
sgtevmckay

Re: Customizing the Rainmeter Installer

Post by sgtevmckay »

I hate to crimp the Enigma style, but for a lot of reasons I must agree with Mr. Morley-sama in this.

The Enigma is a glorious and gorgeous piece of work, and the integration of the past has been excellent, but as Rainmeter will move forward, keeping up with the constant downloads/Updates is going to be problematic, even for you.

I may be seeing the latest issue for you incorrectly, but the new Rainmeter structure would seem to have you in a bind, and of course Rainmeter integration, may seem the way to go.

Here is what I suggest, and I hope I am not out of line, as I am no skinner or programmer at your level of capability.

Have your own installer, and if you are so inclined, use the latest Rainmeter structure update, without Rainmeter integration.
This way you can direct folks to here, and the code site for the latest download, but also I can direct you to one of the best known installer for free out there.

Look into NSIS:
http://nsis.sourceforge.net/Main_Page

The learning curve is not that high, and the installer is almost intuitive, if you require special install instruction, it can be had.
And you would have the benefit of having a customized look to your install.
Definately not nearly as confusing to create an install package as a few of the Paid solutions that I could name :roll:
User avatar
Kaelri
Developer
Posts: 1721
Joined: July 25th, 2009, 4:47 am

Re: Customizing the Rainmeter Installer

Post by Kaelri »

You're both right, actually. I hadn't considered the issue of version dissonance; my head is still in the Dark Ages, when there was only one stagnant version of Rainmeter floating around for several years. But I do want to support centralizing Rainmeter's development. So I agree completely, and I will not carry out this idea.
There is work underway to replace Tranquil with at least one and perhaps several "default" skins in the installation, and I wouldn't have any problem with having Enigma be one of them.
Well I'd never request this myself, but if including Enigma is something you guys are interested in doing, I'd be happy to cooperate. I plan to release an update this coming week, which will be the final update before I start work on the Litestep project, so this would be a good time for it. (Seriously, though, I'm not asking. I'd hate to be so presumptuous.)
I may be seeing the latest issue for you incorrectly, but the new Rainmeter structure would seem to have you in a bind, and of course Rainmeter integration, may seem the way to go.
Oh, on the contrary, these changes are awfully nice for me as a skin developer. :) Last time around, I was having lots of issues with 64-bit OSes, and Vista didn't have a clue where things were supposed to go. Now that each one has a consistent behavior, my job's a lot easier.
User avatar
jsmorley
Developer
Posts: 22629
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: Customizing the Rainmeter Installer

Post by jsmorley »

Kaelri wrote:You're both right, actually. I hadn't considered the issue of version dissonance; my head is still in the Dark Ages, when there was only one stagnant version of Rainmeter floating around for several years. But I do want to support centralizing Rainmeter's development. So I agree completely, and I will not carry out this idea.
Well I'd never request this myself, but if including Enigma is something you guys are interested in doing, I'd be happy to cooperate. I plan to release an update this coming week, which will be the final update before I start work on the Litestep project, so this would be a good time for it. (Seriously, though, I'm not asking. I'd hate to be so presumptuous.)
Oh, on the contrary, these changes are awfully nice for me as a skin developer. :) Last time around, I was having lots of issues with 64-bit OSes, and Vista didn't have a clue where things were supposed to go. Now that each one has a consistent behavior, my job's a lot easier.
Well I don't and can't speak for everyone, but I would think having Enigma installed as part of the Rainmeter installation would be fantastic. I think it would be good for you, and I believe good for Rainmeter and the community in general, as Enigma may well be, (by my unofficial reckoning) the most popular Rainmeter skin ever...

The only thing to consider is the complexities of the installation. Most skins you just dump in .\Skins, tell the user to edit the .ini and put his own zip code in, and off you go. You have a pretty extensive installation procedure of your own just for Enigma, and I'm not sure how we would fold the two together. I guess one approach is to install Rainmeter, dump the uninstalled Enigma in some install folder in Documents\Rainmeter and then have the Rainmeter installation ask if the user wants to kick your installation package off as the last thing it does. Just thinking out loud...
User avatar
jsmorley
Developer
Posts: 22629
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: Customizing the Rainmeter Installer

Post by jsmorley »

P.S. "version dissonance" I love that phrase... ;-)
User avatar
Kaelri
Developer
Posts: 1721
Joined: July 25th, 2009, 4:47 am

Re: Customizing the Rainmeter Installer

Post by Kaelri »

Oh, my "installation package" is extremely crude. All it really does is copy the fonts, the skin, and Rainmeter.ini, and pastes them wherever they're supposed to go. I'd like to make it a little more sophisticated in the future, of course, but as it is, the user has to edit the .INIs just like everybody else. So it wouldn't really lose anything from being preinstalled. In fact, the only thing Enigma does that's at all unique - the profile/template system - is something that I hope will be built into Rainmeter someday.

(Speaking of thinking out loud, I just discovered that putting the skins in My Documents is perfect for my installer method. I use AutoIt, which has a macro for determining the user's My Documents directory automatically. I just need to find out if it works on Windows 7; if so, I can make a single installer that will work on all three versions of Windows. Yay!)
User avatar
jsmorley
Developer
Posts: 22629
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: Customizing the Rainmeter Installer

Post by jsmorley »

Kaelri wrote:Oh, my "installation package" is extremely crude. All it really does is copy the fonts, the skin, and Rainmeter.ini, and pastes them wherever they're supposed to go. I'd like to make it a little more sophisticated in the future, of course, but as it is, the user has to edit the .INIs just like everybody else. So it wouldn't really lose anything from being preinstalled. In fact, the only thing Enigma does that's at all unique - the profile/template system - is something that I hope will be built into Rainmeter someday.

(Speaking of thinking out loud, I just discovered that putting the skins in My Documents is perfect for my installer method. I use AutoIt, which has a macro for determining the user's My Documents directory automatically. I just need to find out if it works on Windows 7; if so, I can make a single installer that will work on all three versions of Windows. Yay!)
@MyDocumentsDir\Rainmeter\Skins will work fine in Windows 7, as will @AppDataDir\Rainmeter for the location of Rainmeter.ini, and @WindowsDir\Fonts for the location to put fonts.

I use AutoIt3 all the time, and I'm on the Windows 7 RC. My RainThemes and RainRegExp as well as a handful of "helpers" of one flavor or another are written in AutoIt3, and have all been updated in the last few days to work with the new Rainmeter "folders" approach with no problems at all.
User avatar
Kaelri
Developer
Posts: 1721
Joined: July 25th, 2009, 4:47 am

Re: Customizing the Rainmeter Installer

Post by Kaelri »

jsmorley wrote:@MyDocumentsDir\Rainmeter\Skins will work fine in Windows 7, as will @AppDataDir\Rainmeter for the location of Rainmeter.ini, and @WindowsDir\Fonts for the location to put fonts.

I use AutoIt3 all the time, and I'm on the Windows 7 RC. My RainThemes and RainRegExp as well as a handful of "helpers" of one flavor or another are written in AutoIt3, and have all been updated in the last few days to work with the new Rainmeter "folders" approach with no problems at all.
You have no idea how good that news is for me. :D

As a matter of fact, it wouldn't be hard at all to make a generic .EXE that any skin developer could stick in their package. I think I'm going to do that.
User avatar
jsmorley
Developer
Posts: 22629
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: Customizing the Rainmeter Installer

Post by jsmorley »

Kaelri wrote: You have no idea how good that news is for me. :D

As a matter of fact, it wouldn't be hard at all to make a generic .EXE that any skin developer could stick in their package. I think I'm going to do that.
Yeah, it would be a great idea to create a generic installer for skins in AutoIt3. It could be generic, and then individually scripted with a .ini file (take a look at AutoIt3's abilities to read and write standard .ini files, it's great) or a .cfg file so the skin maker could set it up specific to his skin, and then the .exe would put the skins in the right place, install any addons specified to Program Files\Rainmeter\Addons, fonts to Windows\fonts, add the skin to Rainmeter.ini with Active=1 set and restart Rainmeter.

So the installation of the components could be tailored to the skin, users don't have to worry if they are putting things in the right place for the new Rainmeter Vista / Seven "aware" methods, and a lot less .ini editing by the end user would be required.

Really almost going to HAVE to have something like this going forward, as the spit of things into APPDATA (Rainmeter.ini), DOCUMENTS (the skins) and PROGRAMFILES (addons and plugins) is going to be more than some folks can wrap their heads around.

You had better hurry up and write this, cause I'm getting worked up just thinking about coding this. I will go find some other big project to work on or take a cold shower... ;-)