XKB config lacks a keyboard layout for Tibetan. The file I am submitting implements the standardized Tibetan keyboard as included in Windows Vista. In the future I hope to implement various popular legacy layouts as well, but as of yet it is not clear to me whether they can be implemented acceptably in pure XKB without additional input-method-type behavior.
Created attachment 11194 [details]
xkb symbols file for tibetan keyboard
Sorry, I am a bit confused. xkeyboard-config puts layouts on per-country basis. Which ISO 3166 country code should I use?
I realize this is VERY politically-charged question, but it has to be answered, sorry.
I was afraid you'd ask something like that. As Tibet lacks an ISO 3166 country code, there's really no good answer. Creating a new XKB country code file for China would be not only politically troublesome (getting people to adopt the standard keyboard is already enough of a political issue due to the impression that it's a "Chinese thing" even though it was designed by Tibetans); it would also be ridiculous since Chinese obviously does not have keyboard layouts (and thus no need for XKB files) but instead requires input methods. Since this keyboard map is language-oriented and not country-oriented (i.e. intended for use in any country/territory where Tibetan language is used) the only reasonable answer I can give is that the name should be based on the language ("bo") and not on any country.
In my view this is probably true for nearly all languages (why should someone speaking French in Japan have to pick a particular French-speaking country rather than just picking French as a language?) but that's really not my business to judge.
> I was afraid you'd ask something like that. As Tibet lacks an ISO 3166 country
> code, there's really no good answer.
That's what I was afraid of.
> reasonable answer I can give is that the name should be based on the language
> ("bo") and not on any country.
The ISO code corresponds to Bolivia. It would be confusing. Making exception case for Tibetian language, using 3-letter ISO639 (tib or bod) is what I'd prefer to avoid.
> rather than just picking French as a language?) but that's really not my
> business to judge.
I see your point. There are cons and pros in the current system - but that's what we have and what I am trying to stick to.
So, taking the circumstances, the only way I currently see is put these variants into symbols/zh, i.e. putting them under the name "China". I realize how politically incorrect that would be. I absolutely mean no offence to Tibetians (and personally I would say I support their idea about national identity). But the rules have to be obeyed. Or... we could leave this bug open so anyone would be able to find that layout (I could even help you maintaining it as a patch) - till Tibet gets its own ISO code. If you have any other ideas, you're very welcome to express them here.
My idea is that it's stupid to have a rule that creates nasty political issues like this where they shouldn't exist. Supporting the keyboard for a language should not be a political issue; it only becomes one once someone insists on using country codes where they don't belong. When/why was this policy decision made? It seems to me that old versions of XFree86 used language-named files instead of country-named ones.
As I said before, making a "zh" file would be not only politically incorrect but also illogical, as it would group completely unrelated languages (Tibetan, Mongolian, Uyghur, Yi, ...?) into a common file for a country whose official language doesn't even have a keyboard layout aside from a basic US-English one.
As for the political issues, with any choice of country code you're going to alienate a possible user-base. Certainly trying to put a country code for Tibet is going to make the software politically sensitive and inaccessible to a majority of Tibetans, while putting a Chinese country code on the file is going to lead to disunity and suspicion/rejection from users outside Tibet. With the amount of crappy legacy pre-Unicode Tibetan fonts and keyboards out there, standardization efforts like the standard keyboard and Unicode/OpenType fonts are desperately needed. It really bothers me to see completely unnecessary politicial discussions like this getting in the way of adoption. The political arguments are extremely important and have their place, but this is not the place.
> So, taking the circumstances, the only way I currently see is put these
> variants into symbols/zh, i.e. putting them under the name "China". I realize
> how politically incorrect that would be. I absolutely mean no offence to
> Tibetians (and personally I would say I support their idea about national
> identity). But the rules have to be obeyed. Or... we could leave this bug open
> so anyone would be able to find that layout (I could even help you maintaining
> it as a patch) - till Tibet gets its own ISO code. If you have any other idea
> you're very welcome to express them here.
Create one zh file is a good idea. East Turkestan and Interior Mongolia
probably needs keyboard layouts to their languages. And when that layout
arrives, the zh file will be there -;).
About national identity... well, is hard to maintain one per-country
keyboard layouts if we start to think in all "separatist" movements
around the world. Where we put Chechen layouts (if they have one and
send a patch to us)? Basque layouts? Even the Kurdish layout that we
have in many country files (ir, iq, tk and sy) can be disputed by some
To avoid that, xkeyboard-config needs to use one per-language files, and
probably we will have a new set of problems.
Anyway, the file I've submitted has no copyright; I release it to the public domain, so you guys are welcome to do as you see fit with it. I hope it'll be included in the official xkb config.
In the long term, what Piter said is very true. I suspect easily as much as 10% of the world population lives under disagreement with international conventions about national boundaries and sovereignty, and [this is my view here, not necessarily Piter's] free software should strive to a higher ideal, not try to tell people "what country they live in". I for one would surely like to see the xkb files reorganized into languages instead of countries, and it would probably remove a lot of duplication as well in cases where a single language is used in many countries with little or no differences between the layout. It's silly to have 4 copies of the Kurdish layout in different country files.
> When/why was this policy decision
> made? It seems to me that old versions of XFree86 used language-named files
> instead of country-named ones.
The decision was made in early xkeyboard-config days. In XFree/early XOrg XKB database there was a mess of country-based and language-based layouts. The project needs a _single_ way to restructure the database. Both ways had their pros and cons. What I definitely wanted to avoid is the mix of them. And so far somehow we managed to maintain it.
> As I said before, making a "zh" file would be not only politically incorrect
> but also illogical, as it would group completely unrelated languages (Tibetan,
> Mongolian, Uyghur, Yi, ...?) into a common file for a country whose official
> language doesn't even have a keyboard layout aside from a basic US-English one.
I do not see a serious problem here. There are countries with multiple languages or no "own" languages at all. For example, USA and Canada. It is a pity China does not have its own layout - but I'd be inclined to create zh(basic) which would only include us(basic).
> It really bothers me to see completely unnecessary
> politicial discussions like this getting in the way of adoption.
I am sorry I involved you into this - but both language-based approach and country-based approach have their potential political aspects, so to some extend that was unavoidable in xkeyboard-config development. May be, the discussion would be not with you but with some other people (for example, Americans who would want their own layout).
> arguments are extremely important and have their place, but this is not the
Exactly. That is why I do not want to dig into the discussions related to the Tibetian politics. All I want is to understand what to do with that patch in relation to existing rules. Any positive idea is good except "f..k the rules". BTW, I suspect even if I would forget about the rules in that particular case, the file symbols/tib (if created) could be illegal in China, couldn't it?
> necessarily Piter's] free software should strive to a higher ideal, not try to
> tell people "what country they live in".
I would second it. But there is a lot of people who have a strong feeling about their national (not linguistic) identity. And they want their _national_ layout. Unfortunately, the problem has 2 solutions, each of them creates a huge area for hot arguments. I hope you believe me when I am saying that I am the person who is most tired from those arguments.
> probably remove a lot of duplication as well in cases where a single language
> is used in many countries with little or no differences between the layout.
What about scenarios where one country is using multiple languages? Most interesting question - what would you do with layouts which are intended to use with several languages of one country, see ca(multix)?
> It's silly to have 4 copies of the Kurdish layout in different country files.
We have one copy, thanks to "include" statement.
(In reply to comment #9)
I don't think there is any way of saying "it must all be this way", and not have huge exceptions.
How about guidelines, such as "keyboard goes with ISO3166 country code, unless it is for a language or situation which is not included there (ie., no official country, or spread over many countries), in which case use the ISO639- language code."
Differentiate with country code lowercase, language code UPPERCASE?
"us", vs "EN".
That way, the symbols/ara changes to symbols/ARA, and continues as before. symbols/us contains an include to symbols/EN. And the situation under question goes ahead with symbols/TIB. Put an include from symbols/cn, if you think the Chinese government will complain less.
Then we can work on some other warts, like Australians needing to identify as Americans for typing purposes...
As somebody deeply entrenched in the Tibetan community, I can make the following comments:
1) This keyboard layout is not really used by any Tibetans as it is new in Vista.
2) Tibetans outside of China have been using the TCRC input method for the last 10+ years and this is not likely to change. This is available in m17n library.
I would put this layout under the Chinese country code as it is unlikely to be used outside of China anyway... and until the UN says otherwise (explicitly), Tibet is technically part of China, for better or for worse.
Responding to Jonas...
1) Typing Tibetan on computers is not really used much at all by Tibetans, up until now, except among "experts" producing signs/brochures/menus/etc. commercially and a small community of enthusiasts which seems to be mostly monks. The presence of full Tibetan script/language support in Vista is likely to change that drastically in the coming years once it's widely adopted, and at that time, the keyboard present in Vista is likely to be what this new 90% of the userbase uses. It's just like how 80% or so of users use MSIE, just because it's what's bundled with Windows...
2) Same thing applies outside Tibet. I would wager I'm as "deeply entrenched" as you, and from what I've seen, very very few Tibetans outside Tibet are writing Tibetan on computers. TCRC keyboard is popular, yes (I wanted to put support for it in the XKB file but I can't figure out a way to make certain keys both generate a character and cause a latching shift to take place), but all the TCRC input software on Windows seems to be tied to legacy fonts rather than Unicode. In any case, adoption of a standard keyboard rather than 10 different software-specific layouts would do a lot for people being able to sit down at a cyber cafe and start typing Tibetan. This is why I'd like to see it available on Linux, old versions of Windows, Mac, etc. - so that it has more of a chance of gaining some widespread acceptance - and also why I don't want to be furthering the impression that it's a "Chinese thing". But if XKB folks have to put it under a nonsense "cn" locale until they come up with a sane way to reorganize the layouts, that's better than nothing IMO...
Thanks to everyone for expressing their opinions. Finally, the decision is to commit as cn(tib), cn(tib_asciinum). This is the most logical solution within the current rules and current set of ISO 3166 codes.
I can't help but think this is very confusing and unlikely to be found by users. Windows has language/country pairs like this, but language comes first like it should, so that you see "BO (CN)" in the list of available keyboards.
There is a long overdue plan (sorry, I cannot find spare time for it yet) to put the list of associated languages for layouts into base.xml. In that case, UI would be able to sort in any way: per-country or per-language.