Kategoriarkiv: ubuntu

It is time to standardize the Chuvash Keyboard Layout

Proto-Bulgarian Runes. Wonder if they are supported in Unicode :)

Proto-Bulgarian Runes (Chuvash language is the closest language to the Proto-Bulgar language). Wonder if they are supported in Unicode :)

The Chuvash Computer Keyboard layouts have existed since 2001, but due to the lack for Unicode support we were forced to use the look-alike letters  from other latin-based keyboard layouts. On Linux The Chuvash keyboard layout was added in 2007 and Linux is still the only operating system that has a native keyboard layout for Chuvash language. On Windows we have used the Keyboard Layout Creator and distributed it as an executable file.

Today, when Windows XP is not supported anymore, the majority of users now have full support for the correct Chuvash letters from the Extended Cyrillic table. These four Chuvash letters are “additional” to the Russian alphabet: ӐӖҪ and Ӳ.

Now when new “keyboards” appear on Android, in web browser (they use the standardized letters) and hopefully in Windows and iOS, we have to consider put the correct letters into the keyboard layouts. For Linux the /usr/share/X11/xkb/symbols/ru file has to be updated:


This switch will have a huge impact on the Chuvash language. Much of content on forums, websites and Chuvash Wikipedia will be hardly searchable. But we have to do it, to standardize and prepare for the future. The Chuvash language Committee is not against it, despite it has not been updated the guidelines for using letters from 2009.

Edit 2014-04-30

The bug in the freedesktop bugzilla was solved very quickly. In fact, in the new Ubuntu 14.04 you’ll find a correct keyboard layout:


Here is the source code:

On Windows keyboard layouts for minority languages in Russia


I can’t write in Chuvash in Windows 8 (and all the previous Windows releases). Chuvash is a minority language in Russian Federation. In this blog post I want to summarize the status of the keyboard layout support of the minority languages of Russia and find a way to improve this situation.

Languages and Microsoft

There are thousands of languages. Of course it is hard to support them all. As per 2012-02-21 Windows 8 supports 109 (!) languages. In december 2012 the support for Cheerokee language was added.

Display language, locale and keyboard layout

In Windows 8, when you go to Language preferences – Add a language, you’ll get “a language”. Behind this general word there are three parts which have to be distinguished in this post:

  • Display language (labels, messages and other user interface in the particular language)
  • Locale (a set of preferences for a particular language and region/country like currency, point or comma as a decimal delimiter, ltr vs rtl, encoding and much more)
  • Keyboard layout (just an arrangement of keys, their placement, can be specific for a language or country, can have different systems like Dvorak)

This blog post is about the keyboard layouts, the easiest part of the “language” support in an operating system.

Russian Federation minorities

There are 160 ethnic groups in Russia speaking over 100 minority languages. The most of ethnic groups ar so called stateless nations meaning there is no main country for this nation (e.g. Sami people in Sweden, but not Germans in the USA).

In Russia there are 21 republics which have their own official languages alongside Russian and their purpose is to be home for ethnic groups. I’ll focus mostly on the official languages in these republics in this blog post, but it would be interesting to investigate smaller languages as well.

Allmost all of the minority languages of stateless nations use the Cyrillic alphabet (often with additional letters). So it makes it pretty simple to see how many languages are supported in Windows 8. Just Go to the Language preferences -> Add a language and group them by writing system. See the screenshot above. There are only three minority keyboard layouts which are supported:

  • Bashkir (1,45 millions speakers)
  • Sakha (Yakut, 360 native speakers)
  • Tatar (4,3 millions speakers)

The funny thing is that all the three are Turkic languages.
There are two additional language keyboard layouts which are implicitly supported:

These two languages (which are co-official languages in the republic of Mordovia) don’t use any additional letters. That’s it. So they can write using only the standard Russian keyboard layout.

Keyboard layouts in Linux

Just a little comparison. In Linux distributions there are more minority languages from Russian Federation represented. The supported ones can be found in the /usr/share/X11/xkb/symbols/ru file:

  • Tatar / tt
  • Ossetian / os
  • Chuvash / cv
  • Udmurt / udm
  • Komi / kom
  • Sakha (Yakut) / sah
  • Kalmyk / xal
  • Bashkir / bak
  • Mari / chm

All these keyboard layouts were added by the community. I personally sent the Chuvash and Kalmyk fragments of that file to Sergey Udaltsov who created patch files and pushed it to freedesktop.


Windows 8 keyboard layouts and Touch mode

When I tried these three supported minority language keyboard layouts of Russia in touch mode, only one worked! It was the Tatar keyboard layout.

The tatars can type all their additional letters in touch mode as well.

Bashkir and Sakha keyboard layouts use the row above qwerty: 12345… Here is the preview for the classic Sakha keyboard layout:


And what about the virtual touch keyboard layout for Sakha language?


As you can see there are no keys for the additional letters for Sakha language (ҕ ҥ ө һ).


Many minority languages of Russian Federation (the most of them already endangered) miss the native keyboard layout support in Microsoft Windows 8 and Windows 7. Windows is a prevalent operating system in Russia. The support for minority language keyboard layout would help people to use their languages and give more chances for languages to survive. For now there are only 3 languages (besides Russian and implicitly some others like Moksha and Erzya) which are supported in Windows 8 with a physical keyboard: Tatar, Bashkir and Sakha. And only one of them (!) works even in touch mode: Tatar.

The purpose of this post is only to identify the status for Russian Federation minority language keyboard layout support in Windows 8. Microsoft Local Language Program (LLP) seems very promising. I hope we will see more languages of Russia and other countries available in “Add language” menu in Microsoft Windows 8.

Long tap and additional letters in Windows 8 (update 2013-03-16)

After I wrote this post I discovered some additional letters available when you long-tap the buttons on the virtual keyboard. Here is an excerpt from the Microsoft Blog about the “press-and-hold”-letters:

There is an interesting counter example in press-and-hold behavior. On a physical keyboard, when you press and hold a character, it repeats. On our touch keyboard when you press and hold, we show alternate characters or symbols. This is something a touch keyboard can do well and a physical keyboard can’t. If you don’t know the specific key combination to show ñ or é or š, for example, it’s painful to type on a physical keyboard. It’s easy to find on the touch keyboard. Practically no one has complained about this departure from convention. We built on it, in fact. You might discover that you can simply swipe from a key in the direction of the secondary key, and that character will be entered, without an explicit selection from the menu. So if you use accented characters a lot, you can get pretty fast with this.

I appreciate this. Here come all the letters I found in the Russian keyboard layout:

Flyout letters Main letter Additional letters
long-tap-u у ү ұ
long-tap-k к ҡ қ
long-tap-n н ң ҥ
long-tap-g г ғ ҕ
long-tap-z з ҙ
long-tap-h х һ
long-tap-o о ө
long-tap-e э ә
long-tap-s с ҫ
long-tap-i и і

Here is the full list of the Cyrillic additional letters:

ү Cyrillic Ue Bashkir, Tatar, Kazakh, Buryat, Kalmyk, Kyrgyz, Mongolian
ұ Straight U with stroke Kazakh
ҡ Bashkir Qa Bashkir
қ Ka with descender Kazakh, Uyghur, Uzbek, Tajik, Abkhaz
ң En with descender Bashkir, Tatar, Kazakh, Dungan, Kalmyk, Khakas, Kyrgyz , Turkmen, Tuvan, Uyghur
ҥ En-ghe (Cyrillic) Sakha, Meadow Mari, Altai, Aleut
ғ Ge with stroke Bashkir, Kazakh, Uzbek, Tofa, Tajik
ҕ Ge with middle hook Sakha, Abkhaz
ҙ Ze with descender Bashkir
һ Shha Bashkir, Sakha, Tatar, Kazakh Buryat Kalmyk Kildin Sami
ө Barred O (Oe) Bashkir, Sakha, Kazakh, Buryat, Kalmyk, Kyrgyz, Mongolian
ә Cyrillic Schwa Bashkir, Tatar, Kazakh, Abkhaz, Dungan, Itelmen, Kalmyk, Kurdish
ҫ Cyrillic The Bashkir, Chuvash
і Dotted i Kazakh, Ukrainian, Belarusian, Khakas, Komi, Rusyn

Here we have three fully functional language keyboard layouts if you are okay with long-tapping:

Bashkir ғ ҡ ҙ ҫ ң һ ә ө ү
Sakha ҕ ҥ ө һ ү
Tuvan ң ү ө

Bashkir and Sakha, I suppose, were considered whilst designing the keyboard layout, and Tuvan language letters only happen to be within the Bashkir and Sakha letters range.

Tatar letters aren’t complete in the standard Russian keyboard layout, the reason for that must be, as I mentioned above, the full functional virtual keyboard for Tatar (where is no need for long-tapping).

There is another language which contains all the letters through long-tapping. Kazakh is absolutely a minority language of Russia, but it doesn’t represent a stateless nation.

Kazakh ғ ә қ ң ө ү ұ і һ

Long-tapping technique could be a solution for many minority languages of Russia:

Language Existing letters To be added
Chuvash ҫ ӗ ӑ ӳ
Udmurt   ӝ ӟ ӥ ӧ ӵ
Meadow Mari ҥ ö ӱ
Hill Mari   ä ö ӱ ӹ

Increase disk space for a VMWare virtual machine

I had a virtual machine which had about 40gig of hard drive space, and I needed to add another 20. At first I thought this would be supported by VMPlayer, but as I found out, it wasn’t. If you have VMWorkstation you will have access to a tool called vmware-vdiskmanager which is able to do just that, but since I didn’t, I had to find another solution. Thankfully, one of my colleagues had a great solution using Ubuntu.

Yes Ubuntu is an operating system. NO YOU DON’T HAVE TO INSTALL ANYTHING, not even Ubuntu! I know it seems like there are a lot of steps, but that’s just because i’ve broken them down into very small ones to make it easier. It is really not a lot of work.

I personally didn’t run into any issues when doing this, and my virtual machine worked fine afterwards. But since it is a delicate operation, you should really make a copy of your virtual machine before trying this.

Firstly, you have to expand the amount of disk space the virtual machine is allowed to use. This is done directly in VMPlayer when the virtual machine is shut down.

  1. Open VMPlayer
  2. Click on the virtual machine who’s hard drive you want to expand.
  3. Click on Edit virtual machine settings
  4. On the hardware tab, click on the Hard Disk in the device list. On the right hand site a Utilities drop down will appear, click it and select Expand.

One might think that this should be enough, and that the disk space of your virtual machine would magically expand to the set amount, but this is not the way it is. It’s not strange really if you consider a virtual machines hard drive being composed by partitions, just like a regular computer. When you expand the disk space, you simply give the virtual machine more disk space, you don’t increase the space for already existing partitions, which is not strange at all. To do this, as I said earlier, you need another tool. I’m sure there are plenty of working tools out there, and some may be easier to work with than this, but for me doing it with Ubuntu worked great.

 The second thing you need to do is increasing the space for the already existing hard drive partition within your virtual machine. You can do this by following these steps:

  1. Download Ubuntu and save the iso-file to the hard drive on your regular computer (not the virtual machine).
  2. Start your virtual machine. From the top menu bar, click Virtual Machine -> Removable Devices -> CD/DVD(IDE) -> Settings. This will open a settings dialog.
  3. On the hardware tab, click CD/DVD (IDE) in the device list.
  4. Under the Connection area, click Use ISO image file and then browse. Browse to the location of the Ubuntu ISO and open it.
  5. When the Ubuntu ISO is selected, just click OK to save and close the Settings dialog. The ISO should now be mounted and readable as a DVD from within the virtual machine.NOTE:
    Ubuntu let’s you start a demo version of the OS without installing anything. All you need to do is boot the machine using the mounted ISO. This is quite amazing if you ask me. But then again I’m not very proficient with these kinds of things.Now you need to restart your virtual machine and boot it from the mounted image. This can be a bit tricky, because you need to change the settings in the BIOS, and you hardly have any time at all to enter bios during the booting sequence.
  6. Restart the virtual machine. When it says Shutting Down, start spamming F2 (press the button repeatedly). You have like a 0,5 second window during which you have to press the button, so just pressing it worked best for me.
  7. Once you’ve entered the BIOS, go to the Boot tab and change the order of the devices so the CD-ROM Drive is positioned above the Hard Drive.
  8. Save and exit the bios (F10).The virtual machine should now boot using the mounted image, and you should come straight into the Ubuntu operating system.Note
    I had a bit of trouble while inside Ubuntu. The graphics of my mouse pointer did not appear in the same location as the actual mouse pointer, so I had a hard time clicking the right buttons. This was manageable using keyboard commands and clicking with the mouse randomly to see it’s current position.
  9. When the first screen appears, choose Try Ubuntu, don’t install it.
  10. From within Ubuntu, press the windows key on your keyboard to open a search panel. Type “gparted” and an icon for the GParted Partition Editor will appear. Press the arrow down key until you’ve selected the GParted icon and then press enter.
  11. You should now see a list of Hard drive partitions and a graphical representation of these. You can increase the size of the partition by selecting it in the list (a bit tricky if you have the mouse problem explained earlier), click the partition tab in the menubar, and then press Resize/Move.
  12.  Increase the value of the New Size to the Maximum size and press Resize/Move. A new pending operation should be created and displayed at the bottom of the screen. Click
  13. Click the Apply all operations button from the Edit tab in the menu bar.
  14. Wait until completed.
  15. To restart the computer click the windows key. Just type “terminal”, press the  arrow down key until you’ve selected the terminal icon and press enter.
  16. In the terminal window, type “sudo reboot” and press enter. Don’t forget to enter bios again when the machine restarts by pressing F2, and changing the bios settings to boot using the hard drive.

And that should be it. Worked for me at least.

Get Ubuntu here. It is a free open source operating system.

If you have VMWorkstation you should already have a tool for doing this. You can read how to here.