IPA layout     «Computing»   «Home»   «Map&Rev»

 

IPA symbols with xkb layout for Linux

Huckvale layout
Click on the picture for a hgiehr-res vesion.

I needed an IPA keyboard overlay to type a 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 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, 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.


// 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)" };

I have made a change in Huckvale’s layout, putting the superscripted hooked h in the hash sign position so that I could key in Bengali voiced aspirated plosives easily. A replacement of the following line with the line below would be Huckvale’s layout.


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

should ben chnaged to


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

Slackware

It is good to associate the ucl layout with us keyboard if the gb keyboard is in prominent use so that both the layouts can be loaded at a time. It should be the other way round, if the us keyboard is in predominant use. The code could be added to either gb or us file, with either of the following sections further added to 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"; };

While in symbols directory, a run of the following command should do the work.


xkbcomp -lhlpR '*' -o ../symbols.dir

The keyboard layout could be slected from the KDE Control Menu, invoked by the following command:


kcontrol

 

Rev.: vii·xi·mmxxii