KDE Theme for Nokia 6030
I recently purchased a Nokia 6030 from Cingular. This is a low-end, cheap phone that has a color screen and supports Java. I like it, but the built-in themes are boring and full of Cingular branding. I know it's possible to download additional themes from the web, but this requires network access and I get charged for that.
I found a few free themes, including Dan Schwartz's free OS X-like themes. They look cool, but I run Linux, so I thought I'd try something similar. The result is my KDE Theme
Here are a few example screenshots, taken from Nokia's Theme Studio.



The background image is Christian Nickel's Dream in Blue, which is my KDE wallpaper, and most of the icons are from KDE's included Crystal SVG icon set. I have a shell script that rebuilds the theme from the source files, which reads and resizes the wallpaper, generates icons as PNG files from the SVG source, and assembles the theme into a Nokia theme file. The great thing about this is, that you don't need Nokia Theme Studio to build themes! Nokia theme files (.nth files) are simply ZIP files that contain all the graphics for the theme, as well as an XML theme descriptor. Once you have a theme, you can modify it without the need for Theme Studio or Windows.
To generate the graphics for the theme, you need to download Dream in Blue (I didn't include it), or some other wallpaper if it suits you. Edit the build.sh script to point to the wallpaper file, then run it. You will need ImageMagick and pngcrush (though you could easily comment the latter if you wish), and you'll want to run from a box that has KDE installed.
Download
Further modifications
Note: these comments apply only to the Nokia 6030 phone from Cingular! Other providers may lay out their files differently! Heck, Cingular may lay out their files differently on other 6030s! This is simply my experience; your mileage may vary.
I wasn't satisfied with simply replacing the theme. Unfortunately, the Nokia theming system for this phone doesn't let you change much, and I was still stuck with the default "Cingular Mall" icon, which was the little orange Cingular guy doing somersaults. Also, the startup and shutdown graphics were lame, with the Cingular logo everywhere. I found this annoying, and wished that the theming system allowed you to change it.
Some exploration with Gnokii and Gammu quickly turned up the hidden Cingular files, that I was able to replace with my own graphics. Here's a listing generated from Gammu that shows the filesystem contents (I deleted the parts not relevant to the discussion):
Folder "D (Permanent_memory 2)"
HS |-- Folder "serviceapplication"
| |-- "opmenuurl"
| |-- "opmenuucsktext"
| |-- "opmenursktext"
| |-- "opmenurskicon"
| |-- "opmenupath"
| |-- "opmenumaintext"
| |-- "opmenumainicon"
| |-- "opmenugridtext"
| |-- "opmenugridicon"
RHS |-- Folder "predefhiddenfolder"
| |-- "WakeUp.gif"
| |-- "shutdown.gif"
As you can probably guess, the WakeUp.gif and shutdown.gif are the startup and shutdown images. opmenugridicon and opmenumainicon are the small and large versions of the Cingular Mall icon, in GIF format. I was afraid to replace these with PNG files (which would have looked better; GIFs only have 1-bit transparency) because all this stuff is undocumented. opmenurskicon is the text "Cingular Mall" which appears on the standby screen. By default, it's black, which clashes with the white font I have set on the standby screen, so I replaced that as well. The other opmenu* files contain things like the URL and menu text that appear for the Cingular Mall. opmenurskicon is the icon displayed for the right softkey on the standby screen, and opmenugridicon and opmenumainicon are the grid and large versions of the Cingular Mall icon on the main menu. After some searching, I learned that it's possible to change the standby screen's softkey assignments, so you don't really need to do anything with the opmenurskicon, since the icon only appears if you select Cingular Mall.
To install these files, I used both Gammu and Gnokii. In my experience, Gammu is faster, but it wasn't able to modify the opmenu* files.
Making a backup
You definitely want to make a backup before modifying anything on your phone. Here's how to do it with Gammu:
gammu --getfiles d:\\predefhiddenfolder\\shutdown.gif
gammu --getfiles d:\\predefhiddenfolder\\WakeUp.gif
gammu --getfiles d:\\serviceapplication\\opmenugridicon
gammu --getfiles d:\\serviceapplication\\opmenumainicon
gammu --getfiles d:\\serviceapplication\\opmenurskicon
Installing the startup and shutdown graphics
Use the following Gammu commands (note: with Gammu, you must first delete, then write the file):
gammu --deletefiles d:\\predefhiddenfolder\\shutdown.gif
gammu --deletefiles d:\\predefhiddenfolder\\WakeUp.gif
gammu --addfile d:\\predefhiddenfolder shutdown.gif
gammu --addfile d:\\predefhiddenfolder WakeUp.gif
Installing the replacement icons
I got an "Unknown Error" when attempting to do this with Gammu. For the record, here are the commands that should work:
gammu --deletefiles d:\\serviceapplication\\opmenugridicon
gammu --deletefiles d:\\serviceapplication\\opmenumainicon
gammu --deletefiles d:\\serviceapplication\\opmenurskicon
gammu --addfile d:\\serviceapplication opmenugridicon
gammu --addfile d:\\serviceapplication opmenumainicon
gammu --addfile d:\\serviceapplication opmenurskicon
Instead, I used Gnokii to do the same thing. With Gnokii, you can overwrite a file without deleting it first:
gnokii --putfile opmenugridicon 'A:serviceapplication/opmenugridicon'
gnokii --putfile opmenumainicon 'A:serviceapplication/opmenumainicon'
gnokii --putfile opmenurskicon 'A:serviceapplication/opmenurskicon'