Creating new icons for TortoiseCVS

TortoiseCVS icons are Windows icon files that are overlaid on top of source code file icons in Explorer to show their status in CVS. The reason this technique works is that most of the area in a TortoiseCVS icon is transparent, allowing the source icon to show through. If you are designing your own TortoiseCVS icon set, you'll need to strike a careful balance between visibility of the original file and easy viewing of CVS states. Some icon sets achieve this balance by adding a distinctive colour or shape to one corner of each icon; others achieve the illusion of shading the entire icon by alternating transparent pixels with coloured ones. You can even combine these two ideas of unique shapes and semitransparent shading: see the "NG" icon set that ships with TortoiseCVS for an example.

  1. Create your icon set using a graphics editor. For the best viewing results, you should create 16x16, 32x32, and 48x48 versions of each icon. The icon editors that ship with the Borland and Microsoft compilers can do this task easily, as can most shareware icon editors. If you prefer to stay with free software, you can use The GIMP to create a PNG file for each icon size, and then combine them together with png2ico.

  2. Make sure you have created one correctly-named icon for each of the seven possible CVS states: TortoiseNotInCVS.ico, TortoiseInCVS.ico, TortoiseInCVSReadOnly.ico, TortoiseChanged.ico, TortoiseConflict.ico, TortoiseAdded.ico, and TortoiseIgnored.ico.

  3. Create a folder inside the directory where you installed TortoiseCVS, name it something that matches the theme of your icon set, and copy your seven new icon files into the new folder.

  4. Open the Registry Editor (Click StartRun and type regedit). Navigate to HKEY_LOCAL_MACHINE\SOFTWARE\TortoiseCVS\Icons. Inside this key, create a new string value. For the name of this new value, type in the name that you would like to call your new icon set. Double-click on the new value to set the actual data, which is the name of the folder you created in step 3.