jump to navigation

Indulging in some Sugar over the holidays December 26, 2007

Posted by globalizer in global access, International requirements, Keyboard layouts, Locales, Unicode.

No, not that kind – the kind of Sugar that comes with the OLPC laptop:


The Sugar user interface does take some getting used to, at least for anybody who has ever used a computer before.

Everything is centered around activities, and you need to get used to using your Journal to access your stuff, rather than the file system:

My Journal on the XO

I am slowly learning that this has its advantages. For instance, if you go back to a terminal window instead of opening a new one, you can recall your keyboard commands with the up and down arrows, even though the system has been powered down in between.

However, if you use the built-in browser (the Browse activity)

Browse activity on XO

to download a file, for instance, you have no clue where the file is placed, so if you want to do something with it afterwards, you need to go to your journal to get it.

This may very well be a good design when the target user group is supposed to be children who have never used (or even seen) a computer before, I just don’t know. I do know that the people exploring the Sugar interface right now via the G1G1 program are not the right people to test the usefulness of the design. Our brains are already hardwired to think along the lines of conventional computer interfaces as they have looked for the past 20 years or so.

So it will be really interesting to see what happens when the machines hit more places like this and we get some real, hard data about how kids use them.

Anyway, I have spent a little time exploring the internationalization support (naturally). The build that is included on the machines in this first shipment to G1G1 donors includes very little in the form of actual localizations, but I will get back to that (and the localization support) in a later post. The underlying Linux distribution (Fedora 7) and the Pango library for text layout have presumably been enlisted to do most of the heavy lifting in the i18n area; how many and what kind of improvements/changes the OLPC project have added is unclear to me right now.

Documentation seems to be scattered in various places in the wiki, with information often being incomplete or irrelevant (e.g., this page about locales seems to contain merely an attempt at a generic description or definition of the concept, and then lists the locales included in the Mandriva Linux distribution – hardly very useful if you are trying to understand the OLPC project).


There does seem to be a full list of installed locales, and I can set the LANG variable to Kurdish in Turkey, or Bengali in Bangladesh, say, and get reasonable results in the Terminal (ignore the fact that the system for some reason came configured to be one day ahead of everybody else):

Locales on the XO

There are few places in the Sugar interface, other than the Terminal activity, where locale settings are actually used/displayed (smart choice!), so it is difficult to test the extent of the locale support. Even though I have to admit that I have not explored most of the activities very thoroughly yet, I did find one area where the setting does not seem to stick: the Calculator. When I switched to the da_DK.UTF-8 locale I would have expected the decimal separator to be a comma in the Calculator, but it stayed a period, and gave me an error when I used a comma.


The machine comes with a fairly limited set of fonts pre-installed, but it is really easy to install new ones and get them recognized immediately:

  1. Create a directory under /usr/share/fonts
  2. Copy the *.ttf files to that directory
  3. Run fc-cache -f to update the font information cache file

Both built-in activities like Write and Browse, and the special OLPC build of Opera that I installed, picked up the updated fonts right away.

Write activity in Sugar

[Update, 2007-12-27:

I should have said that I have not verified whether the Sugar interface does in fact display text in the various complex scripts completely correctly (handle correct shaping in all cases, etc.). There may very well be issues.]

By the way, a big thank you to the Opera team who created this port!

Opera browser with Kannada script

Keyboard support

There seems to be a bit of work left in defining special OLPC keyboard support for most of the keyboard layouts. Only a couple come with the language key defined to allow keyboard toggling, and the documentation on how to enable it is sketchy to put it mildly. The support for toggling in itself also seems to be limited, but I ‘ll get to that. First, here’s what I have done to enable keyboard layout toggling:

  1. Edit the keyboard you want to enable for language toggling (find them in /usr/share/X11/xkb/symbols), e.g., “dk” (Denmark)
  2. Add n “olpc” section in the keyboard file:
  3. OLPC language toggle section

  4. Create a .kbd file in the /hom/olpc directory with the following content (number and names of keyboard layouts will vary, of course):
  5. .kbd file

  6. Now you should be able to toggle between the defined keyboards using the special language key. Here’s what they key looks like on a US keyboard: Language key

And this works – to some extent. I have not been able to get more than 4 keyboards to actually toggle. And it seems to definitely be a numeric limit, rather than just me messing up the keyboard definitions – I can switch out the fourth keyboard in the list and get that to work just fine, but the list will still be limited to the four.

Update, Jan. 25, 2008:

Aha, if I had been using Linux on a more regular basis I would have know that this “four keyboard toggle limit” is a general Linux limitation, not a special XO issue. 

Another way of switching keyboards is to use the “setxkbmap” command. Since your keyboard will then be set to typing only Mongolian, for instance, it’s a little difficult to revert back from that change (unless you use the “setxkbmap us” command first, which will then allow you to use the up arrow to get the command back).


This seems to be the weakest area in the builds shipped with the G1G1 program. As far as I can tell, there simply are no IMEs for languages such as Chinese, Japanese and Korean right now. The wiki has a really long page on input methods, but it seems to be more or less a list and description of the various IMEs that exist – with no information about how to get some that work on the XO, cf. the following section:


Tools for keyboard layouts, to come. loadkeys utility to load keyboard layouts.

Tools for IMEs, to come.

OK, this is it for now. I will probably go back and update sections as I learn more. And anybody out there with correction, let me know!


1. Do you take Sugar with your User Interface? | Jason Slater Weblog - May 23, 2008

[…] Indulging in some Sugar over the holidays […]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: