View Full Version : How to edit Nokia s40v3 themes (.nth files)


bobscure
8th March 2006, 16:42
Hi there.
First, i started to create nokia s40 themes for my phone, after what i was looking for other releases, and finally, found some cool themes.
However, some themes contain files that interested me and i wished to use them in other theme files...i had to find a way to extract what i was looking for...
I found the answer accidentally...and it is more easier than i thought...

To continue with this tutorial u need to know three or more stuffs:
- U need WinRar archiver and know how to use it (winzip could be ok...however i like winrar)
- U needsome extended text editing program, i have attached the unofficial version 2of notepad.
- U must know how to change a file's extension (...)
- A bit of logic is welcome...

If u have these system requirements, u can go further...LOL

First, u need a .nth file, but to follow step by step this toturial just get "window.nth" attached.

Once in hand, change the "window.nth" file's extension from ".nth" to ".zip" in order to get "window.zip" instead of "window.nth"

Extract content with winrar with option "Extract to Window\"...what do u see in the directory? it's content of course !
OK this tutorial is finished...LOL. No, it is not !

The content of the "window.nth" archive...uh...theme is listed above:
- large_thumbnail.gif
- Window_ss.gif
- Window.jpg
- Window_bk.jpg
- Fast-flying.mid
- theme_descriptor.xml

We will see each file's usage:
- "large_thumbnail.gif" is the thumbnail used to show the file preview when opened in gallery
- "Window.jpg" is the wallpaper
- "Window_bk.jpg" is the menu background
- "Fast-flying.mid" is the ringtone and
- "theme_descriptor.xml" is the file used by the phone to know each file's usage !
If u view the file "theme_descriptor.xml" with the winrar viewer, u will see a such stuff:
<?xml version="1.1" encoding="UTF-8"?>
<!DOCTYPE theme PUBLIC "-//NOKIA//DTD THEME 1.1//EN" "theme.dtd">
<theme name="Window" version="1.1">
<wallpaper src="Window.jpg"/>
<screensaver src="Window_ss.gif"/>
<ringtone src="Fast-flying.mid"/>
<colorscheme color="grey"/>
<background src="Window_bk.jpg"/>
</theme>

However, u cannot edit it, and even window's notepad is unable to do so because it does not respect the line endings (For tech info, line endings - when pressing return key - in windows text files are CR-LF but in the xml file, it is only LF)...it is why i joined notepad 2.
Open the notepad 2
Switch the option "View-> Show line endings" to see the difference.

Now, u know how to view/extract a file's content, now will see how to edit the theme file.
Two ways to do :
- Changing the files included in the theme with yours, respecting exact file names and types.
- Using your custom files...to do, just edit the .xml file and change the fields by yours (eg: in the field <wallpaper src="Window.jpg"/>, the file "Window.jpg" is used as wallpaper, to use "myfile.png" as wallpaper, u should change it to <wallpaper src="myfile.png"/> and so on for menu, ringtone...icons...)
In all cases, u need to inlcude your files in a .zip file using winrar with no sub directory (the files should be directly reachable when opening the archive and not in a directory)
The level of compression does not matter, however, the best level is recommended to get less space busy in the phone.

The last step is to change the archive's extension from ".zip" to ".nth", it's done!

Important:
If u forget to include a file listed in the .xml file, the theme should be considered as corrupted and will not be openable by the phone.
".rar" files do not work, so u have to use the option ".zip" in the archiver's archive format option.

OK,i did'nt said all the stuff u can do with the .nth file and the theme_descriptor.xml file which contains minimum fields, there is more fields, i will list them in a next post, some screenshots would be also welcome, now i am out of time... The aim of this tutorial is extracting a theme's content, because to create ur custom theme, u should use Nokia S40 theme studio (described somewhere in the forum)
Now, it is really finished...

Pass is :
bob_is_dead

Slick86
22nd March 2006, 13:12
Hello !
I have a n3220 and i hate the icons, and i was trying to figure out how to change them. Do u know a way to do that ? got some themes with icons from nokia 6230 but they don't work. It really bugs me that i can only change the wallpaper and screensaver. :(

bobscure
5th April 2006, 18:25
Hi.
Sorry for answer time, I had some connexion problems these last days...
The problem may be that your phone don't support image icon format of the icons from the 6230, in this case u have to change it (into gif or png that would work) using some soft (i have posted one in a thread,... i don't remember it and u have to do some search...a soft called "Axialis Icon workshop", it would help u.
If u had the soft and dont know how to do, tell me.
If u still have trouble, post here a theme that u wanna change from 6230 to 3220, perhaps i could do something for U

NB:
I still have connexion problems, so please be patient for the answer.

Slick86
6th April 2006, 12:59
Well , i tried to make a theme with nokia theme editor, but it said that nokia 3220 can't support icon changing. I copied the .gif and .png files from a 6230 theme to make grid icons (.gif) and list icons (.png) and it worked in the program , but when i saved the theme and upload it to my phone it did'n work at all. I was tring to find a way of hacking the phone's software in some way, cuz if 3rd version s40 phones (ex: 6230i) can support icon changing maybe 2nd version s40 phones (ex:3220) can support it to. Maybe a new firmware, i don't know....
Thanks in advance for u're help !
:prayer:

bobscure
11th April 2006, 14:40
Well , i tried to make a theme with nokia theme editor, but it said that nokia 3220 can't support icon changing. I copied the .gif and .png files from a 6230 theme to make grid icons (.gif) and list icons (.png) and it worked in the program , but when i saved the theme and upload it to my phone it did'n work at all. I was tring to find a way of hacking the phone's software in some way, cuz if 3rd version s40 phones (ex: 6230i) can support icon changing maybe 2nd version s40 phones (ex:3220) can support it to. Maybe a new firmware, i don't know....
Thanks in advance for u're help !
:prayer:

Hmmm...I see...
First, U should know that flashing the phone is not a solution because the firmware rarely (or never ...) adds a feature that is absent in the first phone firmware, it always fixes some bugs...that's all, so u better avoid (even, it is not safe from risks...)

For the problem, if the official program says that the phone do not support icon changing...maybe it is the truth...in this case themes for 3220 consists only in changing wallpaper and background.
Now if u ask, why the soft lets me chose icons and then do not support them ? U have certainly remarked that the interface of the program don not change between s40v3 and s40v2 theme creation, Nokia's "lazy" developpers thought that is is useless to change it and the user would have the "disagreable" message that says "the phone does'nt....bla bla bla".

In another way...u could try to follow this :
Did u extracted the files in the original theme ?
- NO: Do it !
- Yes: Try to make a test theme with ONLY gifs and then with png (even if it is ugly, just to see what is the source of the problem...) using official nokia s40 theme studio

If no theme works, the phone unfortunately does'nt support icon changing...

In the case the theme with gifs works and not with the png, maybe that the pngs are in an unsupported format (will explain it) by the phone.
In this case (which i suppose is the fact...) u have two solutions:
- Either convert them to gifs...
- Or to supported png format

Explanation:
Coloured png could be in three (or more formats):
8 bit (256 colors)
24 bit (16.7 M colors)
32 bit (true colors with alpha channel that authorizes smooth shadow and smooth transparency)

The 32bit is not supported by all the phones, the 6230i does but i do not know for other phones...
There is a soft called Axialis icon workshop (search for here, if it is absent from the forum, i will repost it, and tell u how to do) that let u change png format from and into these listed above.

But sincerely I do not think that ur problem reaches that level of complexity...

Finally, u can post ur problematic theme so i make the different solutions listed above i u think that u couldn't do it :rolleyes:

Till then, regards

pongta
15th February 2007, 15:31
Thanks for the tutorial. I should give a try as per your instruction.

subrata
17th December 2007, 10:53
awesome trick & tutorial, but u did not mention, in this way we can make theme also. anyway thanks for this brother.

dubeyanshul1
3rd April 2009, 11:07
whats the password for unlock the tutorual stuff.rar

please give me the password in my email that is dubeyanshul1@gmail.com

teraspawn
17th May 2009, 23:11
Here's a more complete example of the file, hope it helps :)


<theme name="template" version="2.0">
<colors active_idle_active_font_color="0xffffff" active_idle_content_background_color="0xffffff" calendar_highlight_color="0xffffff" display="main" forms_selected_color="0xffffff" forms_selected_font_color="0xffffff" forms_unselected_color="0xffffff" forms_unselected_font_color="0xffffff" grid_menu_font_color="0xffffff" grid_menu_highlight_font_color="0xffffff" header_font_color="0xffffff" idle_font_color="0xffffff" idle_font_outline_color="0xffffff" idle_softkey_area_font_color="0xffffff" idle_status_area_font_color="0xffffff" menu_font_color="0xffffff" menu_highlight_font_color="0xffffff" shortcut_bar_popup_background_color="0xffffff" shortcut_bar_popup_font_color="0xffffff" softkey_font_color="0xffffff" status_area_font_color="0xffffff"/>
<colors active_idle_active_font_color="0xffffff" active_idle_content_background_color="0xffffff" calendar_highlight_color="0xffffff" display="second" forms_selected_color="0xffffff" forms_selected_font_color="0xffffff" forms_unselected_color="0xffffff" forms_unselected_font_color="0xffffff" grid_highlight_color="0xffffff" grid_menu_font_color="0xffffff" grid_menu_highlight_font_color="0xffffff" header_font_color="0xffffff" idle_font_color="0xffffff" idle_font_outline_color="0xffffff" idle_softkey_area_font_color="0xffffff" idle_status_area_font_color="0xffffff" menu_font_color="0xffffff" menu_highlight_font_color="0xffffff" reorder_highlight_color="0xffffff" reorder_highlight_font_color="0xffffff" shortcut_bar_popup_background_color="0xffffff" shortcut_bar_popup_font_color="0xffffff" softkey_font_color="0xffffff" status_area_font_color="0xffffff"/>
<menu_item animating_grid="image_3.gif" app_specific_bg="image_4.gif" grid_view_icon="image_2.gif" item_id="ams_messages" list_view_icon="image.gif"/>
<menu_item animating_grid="image_7.gif" app_specific_bg="image_8.gif" grid_view_icon="image_6.gif" item_id="applications" list_view_icon="image_5.gif"/>
<menu_item animating_grid="image_11.gif" app_specific_bg="image_12.gif" grid_view_icon="image_10.gif" item_id="brew" list_view_icon="image_9.gif"/>
<menu_item animating_grid="image_15.gif" app_specific_bg="image_16.gif" grid_view_icon="image_14.gif" item_id="callregister" list_view_icon="image_13.gif"/>
<menu_item animating_grid="image_19.gif" app_specific_bg="image_20.gif" grid_view_icon="image_18.gif" item_id="camera" list_view_icon="image_17.gif"/>
<menu_item animating_grid="image_23.gif" app_specific_bg="image_24.gif" grid_view_icon="image_22.gif" item_id="contacts" list_view_icon="image_21.gif"/>
<menu_item animating_grid="image_27.gif" app_specific_bg="image_28.gif" grid_view_icon="image_26.gif" item_id="extras" list_view_icon="image_25.gif"/>
<menu_item animating_grid="image_31.gif" app_specific_bg="image_32.gif" grid_view_icon="image_30.gif" item_id="gallery" list_view_icon="image_29.gif"/>
<menu_item animating_grid="image_35.gif" app_specific_bg="image_36.gif" grid_view_icon="image_34.gif" item_id="goto" list_view_icon="image_33.gif"/>
<menu_item animating_grid="image_39.gif" app_specific_bg="image_40.gif" grid_view_icon="image_38.gif" item_id="media" list_view_icon="image_37.gif"/>
<menu_item animating_grid="image_43.gif" app_specific_bg="image_44.gif" grid_view_icon="image_42.gif" item_id="messages" list_view_icon="image_41.gif"/>
<menu_item animating_grid="image_47.gif" app_specific_bg="image_48.gif" grid_view_icon="image_46.gif" item_id="number_entry" list_view_icon="image_45.gif"/>
<menu_item animating_grid="image_51.gif" app_specific_bg="image_52.gif" grid_view_icon="image_50.gif" item_id="organizer" list_view_icon="image_49.gif"/>
<menu_item animating_grid="image_55.gif" app_specific_bg="image_56.gif" grid_view_icon="image_54.gif" item_id="push_to_talk" list_view_icon="image_53.gif"/>
<menu_item animating_grid="image_59.gif" app_specific_bg="image_60.gif" grid_view_icon="image_58.gif" item_id="services" list_view_icon="image_57.gif"/>
<menu_item animating_grid="image_63.gif" app_specific_bg="image_64.gif" grid_view_icon="image_62.gif" item_id="settings" list_view_icon="image_61.gif"/>
<menu_item animating_grid="image_67.gif" app_specific_bg="image_68.gif" grid_view_icon="image_66.gif" item_id="simatk" list_view_icon="image_65.gif"/>
<menu_item animating_grid="image_71.gif" app_specific_bg="image_72.gif" grid_view_icon="image_70.gif" item_id="sport" list_view_icon="image_69.gif"/>
<menu_item animating_grid="image_75.gif" app_specific_bg="image_76.gif" grid_view_icon="image_74.gif" item_id="voiceportal" list_view_icon="image_73.gif"/>
<menu_item animating_grid="image_79.gif" app_specific_bg="image_80.gif" grid_view_icon="image_78.gif" item_id="wireless_village" list_view_icon="image_77.gif"/>
<wallpaper main_display_graphics="image_81.gif" second_display_graphics="image_138_1.gif"/>
<screensaver main_display_graphics="image_90.gif" second_display_graphics="image_138_2.gif"/>
<background idle_softkey_area_bg="image_83.gif" idle_status_area_bg="image_82.gif" main_default_bg="image_86.gif" note_bg="image_96.gif" second_default_bg="image_138_3.gif"/>
<calendar_bg april="image_118.gif" august="image_122.gif" december="image_126.gif" february="image_116.gif" january="image_133.gif" july="image_121.gif" june="image_120.gif" march="image_117.gif" may="image_119.gif" november="image_125.gif" october="image_124.gif" september="image_123.gif"/>
<radio_audio_bg audio_bg="image_112.gif" radio_bg="image_113.gif"/>
<softkey_bg left="image_87.gif" middle="image_88.gif" right="image_89.gif"/>
<wait_graphics src="image_95.gif"/>
<highlight active_idle_row="image_84.gif" active_idle_shortcut_bar="image_85.gif" forms_selected="image_131.gif" forms_unselected="image_132.gif"/>
<tones cal_alert="cal_alert$tones.mp3" msg_alert="msg_alert$tones.mp3" ringtone="ringtone$tones.mp3"/>
<startup duration="3000" main_display_graphics="image_91.gif" second_display_graphics="image_138_4.gif" tone="tone$startup.mp3"/>
<shutdown duration="3000" main_display_graphics="image_92.gif" second_display_graphics="image_138_5.gif" tone="tone$shutdown.mp3"/>
<transformation_open duration="1000" main_display_graphics="image_93.gif" second_display_graphics="image_138_6.gif" tone="tone$transformation_open.mp3"/>
<transformation_close duration="1000" main_display_graphics="image_94.gif" second_display_graphics="image_138_7.gif" tone="tone$transformation_close.mp3"/>
</theme>