Your favorite Apple, iPhone, iPad, iOS, Jailbreak, and Cydia site.
Thread: Release: iSwitcher
08-26-2007, 12:00 AM #1Release: iSwitcher
Notice - I've uploaded version 0.2. This one includes 10 themes and allows for each theme to load a custom dock image. It also allows for the use of a master DisplayOrder.plist file. Just put yours into /var/root/Media/ThemeMaster
It's pending in the download section
----------- iSwitcher app -----------
What does it do it?
Allows on the fly theme swapping.
The theme file is stored as a (ditto) zip file in /var/root/Media/Themes. iSwitcher extracts the zip file and then for whatever apps you have installed and that you have icons for, it installs new icons. So if your theme zip file has a TicTacToe icon but you don't have TicTacToe installed, the icon is obviously not installed. By the same example, if you DO have TicTacToe installed but your theme does not have a TicTacToe icon, it will not change the icon. Depending on the launcher you use, you can also switch themes by simply selecting it's icon. I use a custom Launcher app that only shows the apps I choose (which I'm also making available in the package). It's called iLauncher and is a tweaked version of mobilelauncher. More info on iLauncher is listed below.
So, how does iSwitcher work?
When you launch iSwitcher, it presents you with a full screen instruction guide (instructions: simply slide the panel to the left and you will see full screen previews of the themes you have installed. If you have three themes installed, you will have four panels, first the guide and then three themes. When you find the one you like and want to install it, simply tap on it. It will then install the icons and relaunch SpringBoard app. Unlock your screen and you have your new theme.
Okay, how do I install iSwitcher?
Download the iSwitcher app and install as a normal app (you need to make iSwitch executable by "chmod +x iSwitch"). Now for each theme you install, it needs to contain an app folder and a theme zip file. The zip file is stored in /var/root/Media/Themes. If you don't have the ditto command, make sure you chmod on the included ditto command in each theme app folder.
A note about DisplayOrder.plist:
To hide any app on your homescreen you must add the displayIdentifier to the "special" section in your DisplayOrder.plist file. If you have trouble performing this task, this app may not be for you, it is not as automated as I had originally hoped. For each and every theme I have installed, I added it to the "special" section to hide it on my home screen.
Okay, I want to make my own themes, can I and what do I do?
YOU BET YOU CAN! In fact YOU SHOULD MAKE YOUR OWN themes (the ones included are my favorites, most likely not yours ;-) ). First make a folder to hold your new theme. Name it <theme_name>.thm. Then once you zip the folder, it will be named <theme_name>.thm.zip. Note: it might be better to just select all your icons and create the zip file. It should NOT contain any path / folder, just the icons. You 'most likely' need to use a Mac and the ditto command to create the zip file. I have NOT tested say a WinZip file, or any other zip for that matter. (I have included a shell script to make the zip, it's in the extras folder). Okay, how do I put my custom icons in the theme folder? It's pretty easy, name your icons EXACTLY the same as the application folder. So for the iPod icon, it must be named MobileMusicPlayer.png, the Notes icon must be named "MobileNotes.png". (Use icon-Camera.png and icon-Photos.png for MobileSlideShow app). Please note: there is a problem with the "Lights Off" app and any future app that includes a space in its name. Basically the installation fails because of the space in its application folder name ("Lights Off.app") so it won't install a custom icon, if you have one. However, if you DO want to change the "Lights Off" icon, all you have to do is rename the app folder to "LightsOff.app" and name your icon to "LightsOff.png" and it will work fine (well test the app, I'm just spit balling here). Edit: Make sure to include your custom DisplayOrder.plist file (more in just a bit).
So now we have our zipped theme file, what else do we have to do?
Well you should have already downloaded my theme pack so just copy and rename one of the included "thm.<theme_name>.app" folders to "thm.<your_theme_name>.app. The first file you need to edit is the "LoadTheme" script file. Here's what the first part of the file looks like:
## Set your theme zip filename below
## Do not change any other part of the script
Please DO NOT put a space in the name of your theme. If you must, you have to use an "_", so it could be named "My_Favorite_Theme".thm ;-)
Again, if you have ditto installed, all you need to do is chmod +x on LoadTheme. If you don't have ditto installed then you need to chmod +x on the ditto file too. (I didn't test without the ditto command installed, but it should work. If you are willing to go this far, just copy ditto to /usr/bin and chmod +x it). Now just two more files need to be edited / revised:
Info.plist - change the CFBundleIdentifier to "thm.<your_theme_name> and keep the CFBundleExecutable as LoadTheme.
Last but not least, you need to create your own preview image (screenshot is the obvious choice) and name it thm.preview.png. Any 320x480 png of your theme will work. Keep it full size, the iSwitch program adjusts it a tad to show it at 100%.
In summary, to make your own theme packs;
1. Create a (ditto) zip file of your theme folder named <theme name>.thm.zip. Put it in /var/root/Media/Themes. The icons are named EXACTLY the same as the applications you want to load new icons for. Note: Unix is 100% unforgiving; if you name your iPod icon as MobilemusicPlayer.png it will not work! (it MUST be named MobileMusicPlayer.png).
2. You have made a new application called "thm.<your_theme_name>.app and put the following files in it:
ditto (chmod +x ditto if you don't have ditto in your /usr/bin folder already)
Info.plist (revised with the name of YOUR theme)
LoadTheme (revised with the name of YOUR theme zip file, "j=")
thm.preview.png (this is the preview image that shows in iSwitcher)
Depending on which Launcher you are using you may or may not see the actual theme applications. If you are using an unmodified Launcher or mobilelauncher then each theme you have installed WILL show up as an actual application. Personally I didn't like this, so I modified mobilelauncher.
Note on DisplayOrder.plist:
Oh yeah, iSwitcher also will install a new DisplayOrder.plist file if you inclulde it in your theme folder. In fact I encourage all users to include their DisplayOrder.plist file to ensure their theme is laid out properly. I want my Display in a specific order so my themes include my DisplayOrder.plist file.
Special notes and comments:
I pretty much tweaked the crap out of my DisplayOrder.plist file and this could mess some people up so I will use a completely stock DisplayOrder.plist, with the following change:
All OEM icons in order, plus iLauncher with the MMi logo icon as the 13th icon.
WOW, this gives me a great revision. I'll tweak the LoadTheme app and have it copy any DisplayOrder.plist file it finds in the theme app folder last to allow the user complete control over the theme pack. Nice... okay, now I'm talking to myself.... is anyone still reading this, christ it's like a friggin novel.
---------- iLauncher ----------
I really liked the Launcher app, the one from Installer (scrolls from bottom to top) but it reads ALL the hidden apps (in DisplayOrder.plist "special" section), which is where I put my theme apps. Now if you WANT this functionality, STOP and proceed no further. However; if like me, you want complete control over what apps show in your launcher then check out iLauncher.
Here's the information for the iLauncher app:
This is a 'hack' of mobilelauncher and in fact so is iSwitcher (you'll notice the similarity) ;-). I altered the program so it scans through all the applications installed but only shows apps with a "l_icon.png". So... all you have to do, for each application you want to see is to use Terminal or ssh and "cp icon.png l_icon.png". Every application that has a "l_icon.png" file will be shown. So to hide the theme apps, you don't have to do anything. To have apps like Terminal, Lights Off, SendSong, etc show, just copy their icon.png file as l_icon.png and presto-o change-o it shows up. Oh yeah, the background of iLauncher IS your current wallpaper. Nice, eh?
Sorry it has taken me so long, I've spent the better part of two weeks messing with shell scripts, finding many ways that worked in Terminal howver they did not work when launched through SpringBoard. Even though there are quite a few steps I feel pretty good about releasing it at this time.
Edit: I still don't have a video camera but I've posted some screenshots. I'm sure there will be questions...
All files are pending in the download section...
You'll need to download, iSwitcher, the Theme-pak and the Theme zip files (three downloads) Oops, if you want iLauncher, that will make four downloads.
Link to my Gallery
Last edited by CyberGreg; 08-27-2007 at 08:59 PM. Reason: New version 0.2
The Following User Says Thank You to CyberGreg For This Useful Post:
08-26-2007, 12:37 AM #2
Speed read everything but sounds sweet. I am going to have to read through it again slower though because some of it went right over me. Awesome work man.
EDIT: Where do we download this from?
Last edited by HighTymes; 08-26-2007 at 12:40 AM.
08-26-2007, 12:50 AM #3
08-26-2007, 12:53 AM #4
so can we just download themes from MMI and use them? And how many screens can we have(Themes), only 3 or can we have as many as we want?
Last edited by custom2005altima; 08-26-2007 at 01:09 AM.
08-26-2007, 12:59 AM #5
Are the themes(once complete) going to have to be loaded from your PC to the iPhone or does this program have a way to download some within the app and then store them locally for later use?
08-26-2007, 01:13 AM #6
Last edited by CyberGreg; 08-26-2007 at 01:24 AM. Reason: fixed typo
08-26-2007, 01:17 AM #7
approved, looks great trying it out now
08-26-2007, 01:36 AM #8
08-26-2007, 09:02 AM #9help please
Have app running but no preview made dir in var\root\media\themes
confused do i just put zip file in there tried that plus made a dir for each theme still no preview help please
Last edited by tarfan; 08-26-2007 at 09:47 AM. Reason: got it working
08-26-2007, 09:54 AM #10
i have all the themes showing up.. and i can click them and it says installing.. but nothing changes after it locks my phone..
i chmoded all the themes that are sitting in the applications directory.. and i chmoded the application itself.
did i miss something? I am using the provided theme pak
tarfan put the files in the app folder.. each theme separately
so you they should show up in launcher..
THis looks great!! I can't wait to get it working!!
thanks for all the hard work..
Last edited by Ozymandius=girl; 08-26-2007 at 09:57 AM. Reason: Automerged Doublepost
08-26-2007, 10:01 AM #11help please
where do i get this app iLauncher and is it the same a launcher
08-26-2007, 10:05 AM #12
yeah sorry it is launcher and is in the installer.app thingy
08-26-2007, 11:35 AM #13
Then you put the zip theme files into:
The install script is running if you are seeing the loading screen and it locks (reboots SpringBoard).
Do you have the 'ditto' command in /usr/bin and did you chmod +x it? The ditto command is what is used to copy the icons into their proper location. It will not install the new icons without ditto.
The Following User Says Thank You to CyberGreg For This Useful Post:
08-26-2007, 07:34 PM #14
Loove the app so far but i had the same problem as ozymandiusgril and i had the ditto thing and chmoded it along with everything else. When I touch a theme it says installing and nothing happens Sorry to bombard you with problems but when I edited one of the thm.apps to work with mine, the preview looked like the papercons thing. hmmm.
any ideas?Sent From My iPhone
08-26-2007, 08:11 PM #15
Can someone make a detailed (with screenshots) guide in the wiki section on how to get all of this working correctly or is it to early for that?
08-26-2007, 08:33 PM #16
Please download THIS updated complete package to make sure you have all of the components.
Copy the zip theme files to /var/root/Media/Themes (don't extract them, simply copy the zip files)
Install each of the theme apps in the Applications folder
-- optional --
A wiki guide is an excellent idea. I'll get started on one.
Last edited by CyberGreg; 08-26-2007 at 08:36 PM.
08-26-2007, 08:57 PM #17
awsome! after downloading this one what do I have to replace?Sent From My iPhone
08-26-2007, 09:17 PM #18
Edit: okay, one more update to the download. Thanks to efface I know why some are having problems. The install and Springboard restart scripting relies on several Unix command line utilities. I added these to the updated (v0.11) download. If you already have the BSD Utilities installed, you're all set.
Last edited by CyberGreg; 08-26-2007 at 10:09 PM. Reason: Added update for Unix files
The Following User Says Thank You to CyberGreg For This Useful Post:
08-27-2007, 12:06 AM #19
got mostly everything working properly now. I got my theme on there and everything but now when I press it it doesnt load a new theme. It keeps the same one. Both the other ones work except mine. It shows the preview and everything but it doesnt work. Also this new package: it just has new themes right. Nothing new to install?
Sorry to bombard you with all these ?s but i love this app and would love to get it working
ThanksSent From My iPhone
08-27-2007, 08:01 AM #20
i had forgotten or overlooked chmoding the .sh file inside the iswap application make sure you chmod all the .sh files.
i have this working and it is great. I wish it don't lock my phone after changing screens.