In the previous post, we talked about the ANTLR grammar that parses the XKB layout files.
The grammar is available at http://code.google.com/p/keyboardlayouteditor/source/browse. I’ll rather push to the freedesktop repository once the project is completed. Now it’s too easy for me, just doing svn commit -m something.
Below you can see the relevant layout files for each country (and in some cases, language), and how the grammar deals with them. First column is filenames from the CVS XKB symbols subdirectory (to be moved eminently to GIT). Last’s week discussion with Sergey helped me figure out issues with the symbol files, simplify what information is needed, and what can be eliminated. Second column has Not OK if something is wrong. Third column tries to explain what was wrong.
ad | ||
af | ||
al | ||
altwin | ||
am | ||
ara | ||
az | ||
ba | ||
bd | ||
be | ||
bg | ||
br | ||
braille | ||
bt | ||
by | ||
ca | ||
capslock | ||
cd | ||
ch | ||
cn | ||
compose | ||
ctrl | ||
cz | ||
de | ||
dk | ||
ee | ||
epo | ||
es | ||
et | ||
eurosign | ||
fi | ||
fo | ||
fr | ||
gb | NOK | Non-UTF8 |
ge | ||
gh | ||
gn | ||
gr | ||
group | NOK | virtualMods= AltGr |
hr | ||
hu | NOK | Non-UTF8 |
ie | ||
il | NOK | key.type=”FOUR_LEVEL” (typically: key.type[something]=….) |
in | NOK | key.type=”FOUR_LEVEL” (typically: key.type[something]=….) |
inet | ||
iq | ||
ir | ||
is | ||
it | ||
jp | NOK | key <BKSP> { type=””, // empty? symbols[Group1]= [ bracketright, braceright ] }; |
keypad | NOK | overlay1=<KO7> }; // what’s “overlay”? |
kg | ||
kh | ||
kpdl | ||
kr | ||
kz | ||
la | ||
latam | ||
latin | ||
level3 | NOK | virtual_modifiers LAlt, AlGr; virtualMods= Lalt |
level5 | ||
lk | ||
lt | ||
lv | ||
ma | ||
mao | ||
me | ||
mk | ||
mm | ||
mn | ||
mt | ||
mv | ||
nbsp | NOK | Non-UTF8 |
ng | ||
nl | ||
no | ||
np | ||
olpc | ||
pc | NOK | key <AA00> { type=”SOMETHING” } instead of { type[Group1]=”SOMETHING” } |
pk | ||
pl | ||
pt | ||
ro | ||
rs | ||
ru | ||
se | ||
shift | NOK | actions [Group1] = [ |
si | ||
sk | ||
srvr_ctrl | NOK | key <AA00> { type=”SOMETHING” } instead of { type[Group1]=”SOMETHING” } |
sy | ||
th | ||
tj | ||
tr | ||
ua |
Non-UTF-8 are the files that have characters that are not UTF-8 (are iso-8859-1).
Some layouts have key.type = “something” and others key.type[SomeGroup] = “something”. Apparently, the format allows to infer which is the group that the type acts upon? That’s weird. Would it be better to put the group information? Is it required that the group is not set?
Some files have virtualMods, which I do not know what it is. Is it used?
3 comments
Non-UTF8 – I’ll fix it.
Yes, virtual modifiers are essential.
I’ll check about the key.type.
I assume the problem with the GB file is simply the £ (erm, my version is UTF-8) in a comment.
Do you need help to fix it beyond that?
Author
@John: Indeed, it’s the £ sign. Sergey will be fixing these minor issues.