[homepage] [computing] [sitemap&revision]

IPA symbols with xkb layout on Slackware

I needed an IPA keyboard overlay as I need to punch in fairly large amount of text in IPA. I thought that I should follow a standard map. I came across ||Mark Huckvale's overlay||. I requested his permission to use the overlay for Linux in April 2009. He wrote: "I would be quite happy for you to copy the Unicode Phonetic keyboard layout for Linux. I would be very happy to try it out on my Ubuntu system if that is possible."

I finished the job and sent a copy to Huckvale with steps for installation. Huckvale's map is not all-inclusive and at least I needed the superscript hooked h ([ʱ]) to write the sounds of the Bengali langauge. So I replaced the number sign -- or hash, pound or even octothorp as it may be called -- in Huckvale's map with superscript hooked h. Huckvale's is a three-tier mapping (Click on the picture for a bigger file, png, 80kB), with all the AltGr+Shift slots being empty which could hold many other characters now left out.

Cut the code below into a file called ucl and keep it in /etc/X11/xkb/symbols.

------------------------>8------------------------

// UCL IPA keyboard overlay
// based on the Unicode IPA keyboard designed by Mark Huckvale
// http://www.phon.ucl.ac.uk/resource/phonetics/
// Abu Jar M Akkas <ajmakkas@ajmakkas.com> 2009

partial default alphanumeric_keys
xkb_symbols "uclphon" {
name[Group1]= "ucl";

key <TLDE> { [ 0x10002de, 0x100031a, 0x10001c0 ] };
key <AE01> { [ 0x1000268, 0x10001c3, 0x1000274 ] };
key <AE02> { [ 0x10000f8, 0x10002c8, 0x10001c1 ] };
key <AE03> { [ 0x100025c, 0x1000279, 0x100027b ] };
key <AE04> { [ 0x100027e, 0x1000024, 0x100027d ] };
key <AE05> { [ 0x100026b, 0x10002cc, 0x100029f ] };
key <AE06> { [ 0x1000250, 0x100032f, 0x1000253 ] };
key <AE07> { [ 0x1000264, 0x1000276, 0x10002e0 ] };
key <AE08> { [ 0x1000275, 0x100002a, 0x100025e ] };
key <AE09> { [ 0x1000153, 0x1000028, 0x1000260 ] };
key <AE10> { [ 0x1000325, 0x1000029, 0x100030a ] };
key <AE11> { [ 0x100002d, 0x100203f, 0x1000361 ] };
key <AE12> { [ 0x1000329, 0x100002b, 0x10001c2 ] };
key <AD01> { [ 0x1000071, 0x1000252, 0x100031d ] };
key <AD02> { [ 0x1000077, 0x100028d, 0x10002b7 ] };
key <AD03> { [ 0x1000065, 0x100025b, 0x1000258 ] };
key <AD04> { [ 0x1000072, 0x1000281, 0x1000280 ] };
key <AD05> { [ 0x1000074, 0x10003b8, 0x1000288 ] };
key <AD06> { [ 0x1000079, 0x100028f, 0x100031e ] };
key <AD07> { [ 0x1000075, 0x100028a, 0x1000266 ] };
key <AD08> { [ 0x1000069, 0x100026a, 0x100031f ] };
key <AD09> { [ 0x100006f, 0x1000254, 0x1000298 ] };
key <AD10> { [ 0x1000070, 0x100028b, 0x1000278 ] };
key <AD11> { [ 0x100005b, 0x10000e6, 0x1000257 ] };
key <AD12> { [ 0x100005d, 0x1000289, 0x100032a ] };
key <AC01> { [ 0x1000061, 0x1000251, 0x1000320 ] };
key <AC02> { [ 0x1000073, 0x1000283, 0x1000282 ] };
key <AC03> { [ 0x1000064, 0x10000f0, 0x1000256 ] };
key <AC04> { [ 0x1000066, 0x1000271, 0x100025f ] };
key <AC05> { [ 0x1000261, 0x1000263, 0x1000262 ] };
key <AC06> { [ 0x1000068, 0x1000265, 0x10002b0 ] };
key <AC07> { [ 0x100006a, 0x1000272, 0x100029d ] };
key <AC08> { [ 0x100006b, 0x100026c, 0x100026e ] };
key <AC09> { [ 0x100006c, 0x100028e, 0x100026d ] };
key <AC10> { [ 0x100003b, 0x10002d0, 0x1000308 ] };
key <AC11> { [ 0x10002b2, 0x1000259, 0x100025a ] };
key <BKSL> { [ 0x10002b1, 0x1000303, 0x1000330 ] };
key <AB01> { [ 0x100007a, 0x1000292, 0x1000290 ] };
key <AB02> { [ 0x1000078, 0x10003c7, 0x1000127 ] };
key <AB03> { [ 0x1000063, 0x10000e7, 0x1000255 ] };
key <AB04> { [ 0x1000076, 0x100028c, 0x1000291 ] };
key <AB05> { [ 0x1000062, 0x10003b2, 0x1000299 ] };
key <AB06> { [ 0x100006e, 0x100014b, 0x1000273 ] };
key <AB07> { [ 0x100006d, 0x100026f, 0x1000270 ] };
key <AB08> { [ 0x100002c, 0x1000306, 0x10002bc ] };
key <AB09> { [ 0x100002e, 0x1002192, 0x1000324 ] };
key <AB10> { [ 0x100002f, 0x1000294, 0x1000295 ] };

modifier_map Shift { Shift_L, Shift_R };

include "level3(ralt_switch_multikey)"
};

------------------------>8------------------------

It is better to associate the ucl layout with us keyboard if you normally use the gb keyboard; you need to associate the overlay with gb keyboard if you normally use the us keyboard. Edit the file gb or us and write the lines below at the end of the file.

// UCL IPA (for gb)
xkb_symbols "ipa" {
include "ucl(uclphon)"
name[Group1]= "United Kingdom - IPA";
};

or

// UCL IPA (for us)
xkb_symbols "ipa" {
include "ucl(uclphon)"
name[Group1]= "United States - IPA";
};

Now while you are in symbols director, run the command xkbcomp -lhlpR '*' -o ../symbols.dir and select the keyboard in the KDE Control Menu, which can be invoked by issuing the command kcontrol.

If anyone wants to replace the superscript hooked h with the hash sign, as it is there in Huckvale's overlay, the line

key <BKSL> { [0x1000023, 0x1000303, 0x1000330 ] };

should ben chnaged to

key <BKSL> { [ 0x10002b1, 0x1000303, 0x1000330 ] };

before running the xkbcomp command.

 

Revised: 26 April 2011