OLPC Nigeria Keyboard
OLPC keyboard layouts
Instructions for setting up keyboard switching in Terminal are on the Customizing NAND images page. On bilingual XOs, the multiplication/division key is replaced with a keyboard switching key.
Changing the language of the keyboard is independent of changing the language currently displayed. The language currently displayed can be changed by using the Language section of the Sugar Control Panel.
Membrane keyboard layouts
English (US international); Spanish (Latin America); Portuguese (Brazilian); Amharic (Ethiopic); Arabic; Nigerian (Igbo, Hausa, Yoruba); French; Thai; Urdu; Cyrillic (Russian); Turkish; Nepali; Mongolian; Kazakh; Devanagari; Uzbek; Pashto; Dari; Armenian; Khmer; Pulaar; Italian; Kreyòl; German; Chinese (Simplified); OLPC AZERTY
Non-membrane keyboard layouts
Starting with the XO-1.5 HS ("High School") edition, the XO laptop has a traditional (non-membrane) keyboard available as an option: English (US International); Spanish (Latin America);
Blank Keyboard Artwork
Artwork defining the inner dimensions of the membrane keyboard is available here: keyboard-blank.svg
Nigerian keyboard
OLPC section of the XKB symbol file
To use the XKB ng (Nigerian) layout, you may need to edit /etc/X11/xorg.conf:
XkbLayout "ng" XkbVariant "olpc"
partial alphanumeric_keys xkb_symbols "olpc" { name[Group1]= "Nigeria - OLPC West Africa"; include "us(basic)" // OLPC Nigeria keyboard layout // See: http://wiki.laptop.org/go/Image:Nigeria-B3.png // combined support for Igbo, Hausa, and Yoruba // Contact Walter Bender (walter@laptop.org) key <TLDE> { [ grave, asciitilde dead_grave, dead_grave ] }; key <AE01> { [ 1, exclam exclamdown, exclamdown ] }; key <AE02> { [ 2, at dead_acute, dead_acute ] }; key <AE03> { [ 3, numbersign, dead_cedilla, dead_cedilla ] }; key <AE04> { [ 4, dollar dead_tilde, dead_tilde ] }; key <AE05> { [ 5, percent, dead_caron, dead_caron ] }; key <AE06> { [ 6, asciicircum, dead_circumflex,dead_circumflex ] }; key <AE07> { [ 7, ampersand, dead_belowdot, dead_belowdot ] }; key <AE08> { [ 8, asterisk, dead_abovedot, dead_abovedot ] }; key <AE09> { [ 9, parenleft, dead_belowverticalline, dead_belowverticalline ] }; key <AE10> { [ 0, parenright, dead_diaeresis, dead_diaeresis ] }; key <AE11> { [ minus, underscore, dead_macron, dead_macron ] }; key <AE12> { [ equal, plus, guillemotleft, guillemotright ] }; key <AD01> { [ q, Q, 0x1001EB9, 0x1001EB8 ] }; // E with dot below key <AD02> { [ w, W, udiaeresis, Udiaeresis ] }; key <AD03> { [ e, E, EuroSign, EuroSign ] }; key <AD04> { [ r, R, 0x10020A6, 0x10020A6 ] }; // Naira Sign key <AD05> { [ t, T, 0x1001EE5, 0x1001EE4 ] }; // U with dot below key <AD06> { [ y, Y, 0x1001ECB, 0x1001ECA ] }; // I with dot below key <AD11> { [ bracketleft, braceleft, 0x10001B4, 0x10001B3 ] }; // Y with hook key <AD12> { [ bracketright, braceright, 0x10001E7, 0x10001E6 ] }; // G with caron key <AC02> { [ s, S, sterling, sterling ] }; key <AC05> { [ g, G, 0x1000257, 0x100018A ] }; // D with hook key <AC06> { [ h, H, 0x1000253, 0x1000181 ] }; // B with hook key <AC07> { [ j, J, 0x1000199, 0x1000198 ] }; // K with hook key <AC10> { [ semicolon, colon, 0x1000131, I ] }; // Dotless I key <AC11> { [apostrophe, quotedbl, 0x10001DD, 0x100018E ] }; // Reversed E key <BKSL> { [ backslash, bar, scedilla, Scedilla ] }; key <AB01> { [ z, Z, 0x1000272, 0x100019D ] }; // N with left hook key <AB02> { [ x, X, 0x1001ECD, 0x1001ECC ] }; // O with dot below key <AB04> { [ v, V, 0x1001E63, 0x1001E62 ] }; // S with dot below key <AB06> { [ n, N, 0x1001E45, 0x1001E44 ] }; // N with dot above key <AB07> { [ m, M, ntilde, Ntilde ] }; key <AB09> { [ period, greater, ccedilla, Ccedilla ] }; key <AB10> { [ slash, question, questiondown, questiondown ] }; key <I219> { [ multiply, division, ISO_Next_Group, ISO_Prev_Group ] }; include "level3(ralt_switch)" }; partial alphanumeric_keys xkb_symbols "olpc2" { include "us(olpc)" key <I219> { [ ISO_Next_Group, ISO_Prev_Group ] }; };