/usr/share/X11/xkb/symbols
Edit: /usr/share/X11/xkb/symbols/za (2109B)
// Based on the Latvian and GB keyboard maps.
default partial alphanumeric_keys modifier_keys
xkb_symbols "basic" {
// Describes the differences between an en_US layout
// and a South African layout with dead keys.
// By Dwayne Bailey (dwayne@translate.org.za).
include "latin"
name[Group1]="English (South Africa)";
key
{ [ grave, asciitilde, dead_grave ] };
key { [ 2, at, yen ] };
key { [ 3, numbersign, sterling ] };
key { [ 4, dollar, dollar ] };
key { [ 5, percent, EuroSign ] };
key { [ 6,asciicircum, dead_circumflex ] };
key { [ e, E, ediaeresis, Ediaeresis ] };
key { [ r, R, ecircumflex, Ecircumflex ] };
key { [ t, T, U1e71, U1e70 ] };
key { [ y, Y, ucircumflex, Ucircumflex ] };
key { [ u, U, udiaeresis, Udiaeresis ] };
key { [ i, I, idiaeresis, Idiaeresis ] };
key { [ o, O, odiaeresis, Odiaeresis ] };
key { [ p, P, ocircumflex, Ocircumflex ] };
key { [ a, A, adiaeresis, Adiaeresis ] };
key { [ s, S, scaron, Scaron ] };
key { [ d, D, U1e13, U1e12 ] };
key { [ l, L, U1e3d, U1e3c ] };
key { [ semicolon, colon, dead_diaeresis ] };
key { [apostrophe, quotedbl, dead_acute ] };
key { [ n, N, U1e4b, U1e4a ] };
key { [ m, M, U1e45, U1e44 ] };
key { [ period, greater, dead_abovedot ] };
include "level3(ralt_switch)"
};