Tweaking the Desktop
A customized desktop is a requirement for any serious hacker. The following tips will help you tweak your XO interface to make it a system any hacker could be proud of.
The first noticeable graphic of the OLPC is its circular ring in the middle of the desktop (Figure 1). This ring serves one main purpose, which is to provide an interface so that the user can manage the graphical programs that are currently running. In the middle of this ring is the custom-colored buddy icon that represents the XO user. The OLCP allows you to change certain aspects of the icon, but we want to make a statement.
Figure 1 Original XO buddy icon
As we examined how to change the icon, we quickly realized that the XO's graphics were based on Scalable Vector Graphics, a relatively new type of image format that builds the image dynamically from an XML file. This presented a small problem because we didn't have any SVG editors on hand; nor did we know of any free ones. After a bit of Googling, we found Inkscape, "an Open Source vector graphics editor, with capabilities similar to Illustrator, CorelDraw, or Xara X, using the W3C standard Scalable Vector Graphics (SVG) file format."
Next we had to locate the XO icon that is embedded in the desktop. After looking in all the obvious places, we eventually found the icon in the /usr/share/icons/sugar/scalable/device/ directory (after finding a reference to the icon file in /usr/share/sugar/shell/view/home/MyIcon.py). So, once we created our own file, we could either replace the computer-xo file in the former directory or upload our file to the former directory and specify its name in the MyIcon.py file.
Code for Original XO Buddy Icon
<?xml version="1.0" ?><!DOCTYPE svg PUBLIC ’-//W3C//DTD SVG 1.1//EN’ ’http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd’ [ <!ENTITY stroke_color "#010101"> <!ENTITY fill_color "#FFFFFF"> ]><svg enable-background="new 0 0 55 55" height="55px" version="1.1" viewBox="0 0 55 55" width="55px" x="0px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" y="0px"> <g display="block" id="stock-xo_1_"> <path d="M33.233,35.1l10.102,10.1c0.752,0.75,1.217,1.783,1.217,2.932 c0,2.287-1.855,4.143-4.146,4.143c-1.145,0-2.178-0.463-2.932-1.211L27.372,40.961l-10.1,10.1c-0.75,0.75-1.787,1.211-2.934,1.211 c-2.284,0-4.143-1.854-4.143-4.141c0-1.146,0.465-2.184,1.212-2.934l10.104-10.102L11.409,24.995 c-0.747-0.748-1.212-1.785-1.212-2.93c0-2.289,1.854-4.146,4.146-4.146c1.143,0,2.18,0.465,2.93,1.214l10.099,10.102l10.102-10.103 c0.754-0.749,1.787-1.214,2.934-1.214c2.289,0,4.146,1.856,4.146,4.145c0,1.146-0.467,2.18-1.217,2.932L33.233,35.1z" fill="&fill_color;" stroke="&stroke_color;" stroke-width="3.5"/> <circle cx="27.371" cy="10.849" fill="&fill_color;" r="8.122" stroke="&stroke_color;" stroke-width="3.5"/> </g></svg>
Figure 2 OLPC buddy icon DEFCONified