• You are not logged in.

Rulemak: Russian Colemak layout

  • Started by ghen
  • 112 Replies:
  • Reputation: 23
  • From: Belgium
  • Registered: 26-Feb-2008
  • Posts: 482

Hi,

I will (probably) start taking lessons in Russian language in September, so I'm looking at options for typing in the Cyrillic alphabet.

As I understand it, there are two major layouts in use; the official Russian keyboard "йцукен", used in Russia and some other countries (available by default in all operating systems), and a transliterated Qwerty-based layout, mostly used outside Russia by people who have to type Russian occasionally.  The latter could probably be Colemak'ized, and be easy to learn for an existing Colemak user, but would probably be far from optimal for typing Russian.  However I've read not so good things about the official Russian keyboard either; the six most frequent characters are all on the index fingers!  Its inventor probably tried to make it ergonomic, but didn't think about it very hard...

Does anyone here have experience with typing Russian, or another language using the Cyrillic alphabet?  What keyboard layouts have you considered using?  Which one did you end up with?

Thanks for any tips!


Edit: stable version of Rulemak as of January 2016
(February 2018 version adds extra Cyrillic letters on AltGr)
rulemak.png
Implementations for xkbpklvim

Last edited by ghen (21-Feb-2018 23:12:14)
Offline
  • 1
  • Reputation: 214
  • From: Viken, Norway
  • Registered: 13-Dec-2006
  • Posts: 5,362

Spasiba!  :)

I made an attempt, but this is from a non-Russian so I may have done mistakes. Basically, I found the AZHERTY a place to start and went by transliterations. The Colemak was my basis, of course.

I got the same impression as you did: The standard layouts that exist are far from perfect. The jungle of layouts attests to this.

In Windows you have the interesting option of mapping a CapsLock state. What this means is that when I press CapsLock I can be typing Cyrillic. CapsLock again, and I'm back to the usual characters. Of course, layout selection can be hotkeyed but I think it's rather nifty.

Getting a fully optimized ergonomical layout is for the native Russians. I wouldn't worry about it, and would think that multilingual users are better served by simply transliterating what they're used to.

If you're interested in what I did, you'll find it in the .doc file in my Norwegian layout download at http://folk.uio.no/obech/Files/Keyboard … olemak.zip (if you're having trouble with the MS-Word doc, let me know and I'll upload an .rtf instead - I've just been to lazy/busy to do it yet). There's lots of columns in there and you'll see that I put the whole Cyrillic alphabet on a dead key(!) but the principle is the same as a normal mapping. Some characters had to go to different columns, but unless I'm mistaken most of them are fairly rare and/or belong to non-Russian Cyrillic scripts.

I use the Cyrillic alphabet very rarely as you can imagine, mostly for song lyrics.

Best of luck, and if you find something interesting then keep us posted!

*** Learn Colemak in 2–5 steps with Tarmak! ***
*** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

Offline
  • 0
  • Reputation: 23
  • From: Belgium
  • Registered: 26-Feb-2008
  • Posts: 482

Heh, DreymaR, is there anything keyboard-related that you have not yet personally researched? :-)

This looks interesting, thanks!  But... could you perhaps post a pdf or something similar, because OpenOffice seems to be chocking on your doc (perhaps because of all the special characters?)...

I agree with your idea that a fully optimized layout is not worthwhile when I only want to type Russian occasionally — too much learning effort for too little benefit.  So I think I better create my own transliterated Colemak variant for easy learning & (relatively) easy typing.  I'll definitely look into your design.

Offline
  • 0
  • Reputation: 0
  • From: NYC
  • Registered: 02-Feb-2007
  • Posts: 104

I type in Russian occasionally and I am fine with using the transliterated Russian keyboard that fits my Colemak keyboard. I even have the installation file that I found on some college student's website a few years ago. I am not very concerned about comfort since I don't type using that layout as often. Plus I am very fast with it without having to learn a new layout since ARST is АРСТ and I can flip layouts with just a keyboard shortcut.

Offline
  • 0
  • Reputation: 23
  • From: Belgium
  • Registered: 26-Feb-2008
  • Posts: 482

This is what I came up with so far, codename "Rulemak":

Ъ 1 2 3 4 5 6 7 8 9 0 - Ч
   Я В Ф П Г Й Л У Ы Ю Ш Щ Э
    А Р С Т Д Х Н Е И О Ё
   ` З Ь Ц Ж Б К М , . /

The transliterated mapping is mostly that of KOI8-R to ASCII (when dropping the 8th bit), applied to Colemak, with some tweaks here and there.  All Latin characters, as well as the missing punctuation characters, are available with AltGr on their original (Colemak) positions.  I've placed semicolon and colon on the Shifted comma and period (instead of <>) though.

I have an X11 xkb file for those interested.

This layout is probably far from optimal for typing Russian, but it'll take years anyway before I'll be able to think faster in Russian than I can type. :-)  But it's easy to remember for existing Colemak typists.  And looking at letter frequencies in Russian, it shouldn't even be that bad (I guess transliterated Qwerty is far worse).

Todo: add additional Cyrillic characters for other Slavic languages (probably with AltGr on the number keys).

Shai: is there any chance something like this could ever become an official Cyrillic variant for Colemak?

Offline
  • 0
  • Reputation: 214
  • From: Viken, Norway
  • Registered: 13-Dec-2006
  • Posts: 5,362

For now, I'd think the chances of "official" are slim. The Colemak layout was researched for use with English and so creating additional variants like this might come under criticism. More importantly, I don't think that Shai has time to maintain several variants. That's just for now though - if things settle down and become popular I'm sure something like that would have the right to be seen.  :)

*** Learn Colemak in 2–5 steps with Tarmak! ***
*** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

Offline
  • 0
  • Reputation: 1
  • Registered: 22-Aug-2008
  • Posts: 36

I was thinking of using a layout like that for Bulgarian, but decided against it because there will be too many words that can be typed with only one hand. I was also going to swap A and S because as A is the most common letter in Bulgarian I could not have it under my weakest finger. O in Russian is in a similar situation, but it's easier to use the right pinkie than the left one.

I decided to use the Bulgarian national layout for a while, see how it feels, and perhaps move E and I to Colemac A and R. But learning two different layouts is hard and sometimes I am thinking of switching to a phonetic layout. I will probably not do that though.

Offline
  • 0
  • Reputation: 214
  • From: Viken, Norway
  • Registered: 13-Dec-2006
  • Posts: 5,362

In my experience, a great many of the national layouts are crap. No idea whether that applies to the Bulgarian one or not, but be warned.

I have no problems typing A - it's whatever takes the pinky away from its' home position that causes me trouble. And I'm not sure the pinky is your weakest finger when it comes to typing - the ring finger may have more strength per se but that doesn't help it much since it's usually the least independent finger so it stresses more and is harder to use right.

When it comes to same-hand, it's largely a question of whether you can do it with rolls or not. The worst situation may be if you have to roll a bit in one direction and then turn - like in Colemak 'rats'.

Zaratustra Zaratustra Zaratustra Zaratustra - ugh.  :)

Last edited by DreymaR (07-Sep-2008 23:09:02)

*** Learn Colemak in 2–5 steps with Tarmak! ***
*** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

Offline
  • 0
  • Reputation: 1
  • Registered: 22-Aug-2008
  • Posts: 36

I guess the Bulgarian layout, created 101 years ago, was perfect for the typewriters at the time (as it places all the emphasis on the middle and index fingers), but even today at least it makes some sense and it's a standard and available everywhere, and most importantly, no one has made a much better one. All the volwels are on the left and the letters are arranged according to their frequency:

,       у-1.54  е-9.21  и-8.82  ш-0.42  щ-0.43  к-2.99  с-5.02  д-3.11  з-2.36  ц-0.75  ;
ь-0.01  я-1.86 а-11.60  о-8.75  ж-0.77  г-1.19  т-7.38  н-8.09  в-4.71  м-2.68  ч-1.44 enter
ю-0.11  й-0.32  ъ-1.71* э-0.00* ф-0.37  х-0.67  п-3.05  р-5.42  л-3.57  б-1.65  shift

* — these keys were used more often before the 1945 spelling reform.

What bothers me the most is the position of е and и and I may end up moving them to the home row, but at first I'll try not to.

Offline
  • 0
  • Reputation: 23
  • From: Belgium
  • Registered: 26-Feb-2008
  • Posts: 482

After using it a few months myself, I have now finalized my Russian layout.  With this layout I can type Russian rather fluently and without thinking, as you mostly just type transliterated Russian:

Ъ 1 2 3 4 5 6 7 8 9 0 - Ь
   Я В Ф П Г Й Л У Ы Ю Ш Щ Э
    А Р С Т Д Ч Н Е И О Ё
   ' З Х Ц Ж Б К М , . /

I considered swapping ь and ё, since ь is more common, but I preferred to keep the layout logically organized: ё (yo) phonetically next to о, and ь symmetric wrt. ъ, since the goal was to create an "easy to remember" layout for Colemak users rather than a fully optimized layout (for that, ь would have to be moved elsewhere anyway due to the rather common -шь in verb endings).  The rest is mostly phonetic.  Key 102 (next to z/з) is Unicode character U+0301, the accent used to indicate stress (important for correct pronounciation), as seen in Russian dictionaries.

Additionally, # (above 3) is replaced by the Russian number sign №.  # itself is available through AltGr-3.  Russian quotes «» are available through AltGr-[], like in Colemak, and [] are available through AltrGr-().  Because ;: are missing, I placed them on <> (logically on Shift-,.), and <> are available through AltGr.  On the letter keys, AltGr yields the corresponding Latin character from the Colemak layout.  Same for missing characters '"\|{}=+.

I called the layout "Rulemak", for "Russian Colemak".  "Tsolemak" would be an option too: if you enter "colemak" on this layout you get "цолемак", which in turn can be transliterated as "Tsolemak". :-) (similarly, the Qwerty-phonetic layout is often called "Yawerty", from "яверты")

PKL (for Windows) and xkb (for UNIX) implementations are available for those interested.

Offline
  • 0
  • Reputation: 1
  • Registered: 22-Aug-2008
  • Posts: 36

Ё is too rare to be on the home row. I would put it at ~, Ъ at =, and Ь at ". Ъ and Ь will be at the same finger, so it will be easy to remember.

Offline
  • 0
  • Reputation: 0
  • Registered: 04-Nov-2008
  • Posts: 17

I just use the phonetic colemak variant for Bulgarian.

Here's my Bulmak

ч 1 2 3 4 5 6 7 8 9 0 - =
я в ф п г й л у ъ ; ш щ ю
а р с т д х н е и о '
з ь ц ж б к м , . /

Comfortable :)

Here is the .dll file for windows. (.msi installer included)

Offline
  • 0
  • Reputation: 0
  • Registered: 29-Apr-2009
  • Posts: 3

Hi there. I have to type in Russian alot recently and was kinda curios is there russian layout like Colemak (which i'm using about 8 months for now).
Glad I've found this topic. I'm about to give ghen's layout some testing, and will write about results here.

Btw, ghen, how's your lessons? =)

Offline
  • 0
  • Reputation: 214
  • From: Viken, Norway
  • Registered: 13-Dec-2006
  • Posts: 5,362

I hope you/we could agree on a Cyrillic layout, so there isn't one Ghoul layout and one Ghen one and so on - but it's hard to do. Fortunately, most of the letters are agreed on - and all the most common ones too I hope. When it comes to local variations such as Russian versus Bulgarian I'd hope that these could be contained to a few keys. I've decided to use the '[', ']' and VK_102 keys for such local variants whenever I make a local layout. If I want a more compliant layout I only use the '[' and ']' keys with AltGr and put the most common local glyph on the VK_102 key. If you're using a keyboard in a country that needs extra glyphs, it will have the VK_102 key (or more!). It is still my belief that people in underdeveloped countries who don't use a VK_102 key should get themselves a better keyboard.  ;)

I'd place the 'yo' on the '[' key. That way it doesn't occupy prime real estate, and it's phonetically analogous to the 'å' which sits there in Nordic layouts (including even mine!). (My ']' key holds the 'æ' - or 'ä' if you're Swedish/German/whatever, and the VK_102 holds 'ø'/'ö'. I really wish that the Nordic-Germanic countries could reform and start using 'ā' and 'ō' instead of different and inconvenient letters, but that's not going to happen soon I guess...)

Last edited by DreymaR (30-Apr-2009 09:20:27)

*** Learn Colemak in 2–5 steps with Tarmak! ***
*** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

Offline
  • 0
  • Reputation: 0
  • Registered: 29-Apr-2009
  • Posts: 3

ugh, almost forgot - ghen, can you share your Rulemak? pkl would be fine.
I promise to give it a proper testing (I'm a native Russian, so feel free to ask anything in Russian language you're uncertain of)

Offline
  • 0
  • Reputation: 23
  • From: Belgium
  • Registered: 26-Feb-2008
  • Posts: 482

Здравствуйте! :-)

ai024 said:

ugh, almost forgot - ghen, can you share your Rulemak? pkl would be fine.

You can find it here.  Create a "rulemak" subdir in your PKL layouts dir, and put my rulemak.pkl there as "layout.ini".  You can put rulemak.ico there as "on.ico" and copy "off.ico" from the colemak layout dir.
If you want to move some keys in the layout, it's easy to do as the file is just plain text.

I put the following in pkl.ini to switch between Colemak/Rulemak by pressing both Control keys:

; The layout ini file is "layouts/[key value]/layout.ini"
; You can use multiple layouts, if you write:
;     layout = layout1:Displayed name,layout2
layout = Colemak,Rulemak

; With this hotkey you can switch between layouts
changeLayoutHotkey = LCtrl & RCtrl,RCtrl & LCtrl

As PKL basically re-loads when you switch layouts, you can make changes to the layout on the fly.  However on an idle PC, switching layouts can take a while (disk spinning up and seeking), and you get Qwerty in the meanwhile. :-)

However I made all Latin letters available on their Colemak positions through AltGr, so no need to completely switch layouts if you just need to type one or two words.

ai024 said:

Btw, ghen, how's your lessons? =)

I don't have any, but you could use any existing Russian typing tutor program that doesn't mess with they keyboard itself?

Last edited by ghen (11-Nov-2017 17:10:15)
Offline
  • 0
  • Reputation: 0
  • Registered: 29-Apr-2009
  • Posts: 3
ghen said:

Здравствуйте! :-)

You can find it here.  Create a "rulemak" subdir in your PKL layouts dir, and put my rulemak.pkl there as "layout.ini".  You can put rulemak.ico there as "on.ico" and copy "off.ico" from the colemak layout dir.
If you want to move some keys in the layout, it's easy to do as the file is just plain text.

Thank you, kind sir!

ghen said:

I don't have any, but you could use any existing Russian typing tutor program that doesn't mess with they keyboard itself?

Lol, I meant how's your lessons of Russian are going? (You were about to take them in September). They're already passed, I guess? =)

Offline
  • 0
  • Reputation: 23
  • From: Belgium
  • Registered: 26-Feb-2008
  • Posts: 482
vVv said:

Ё is too rare to be on the home row. I would put it at ~, Ъ at =, and Ь at ". Ъ and Ь will be at the same finger, so it will be easy to remember.

I agree on ё being too rare, but I settled on another solution: ь on ', ъ on ` and ё on =.

This is easy to remember because ь and ъ are related like ' and ` are (plus this is also commonly used in other transliteration schemes), and it still keeps ё physically near the е/о vowels.

I've implemented it this way in my xkb and pkl files.  Hopefully this is now the final rulemak layout. ;-)

ъ 1 2 3 4 5 6 7 8 9 0 - ё
   я в ф п г й л у ы ю ш щ э
    а р с т д ч н е и о ь
   ' з х ц ж б к м , . /
Last edited by ghen (01-Sep-2009 07:59:23)
Offline
  • 0
  • Reputation: 214
  • From: Viken, Norway
  • Registered: 13-Dec-2006
  • Posts: 5,362

Looking good, Ghen. I hope ai024 and/or others of similar nationality can give it a good spin and hopefully approve wholeheartedly!  :)

*** Learn Colemak in 2–5 steps with Tarmak! ***
*** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

Offline
  • 0
  • Reputation: 23
  • From: Belgium
  • Registered: 26-Feb-2008
  • Posts: 482

Here's an image of the Rulemak layout:

rulemak.png

(generated with carpalx, hacked a bit to cope with non-ascii characters)

Last edited by ghen (19-Oct-2019 21:19:41)
Offline
  • 0
  • Reputation: 214
  • From: Viken, Norway
  • Registered: 13-Dec-2006
  • Posts: 5,362

I snooped around the net a bit, and it seems the world (including the Linux/xkb world) is settling on mainly two phonetic variants as described on the WinRus site by Paul Gorodyansky? You're no doubt aware of these already:

Russian Phonetic "YaWERT WinKeys" as seen in Linux XKB:
   yawert.gif

Russian Phonetic "Student":
   student.gif

The standard Russian layout, for comparison:
   std_ru.gif

(There are more similar images of variants here: http://winrus.com/keyboard.htm )

Here are my thoughts:
- я ч х ц ж ш щ э are well placed in Rulemak, in accordance with the YaWERT (a little uncertain about ж 'zh'?)
- Putting № in accordance with the Standard layout is a good idea
- I agree with using proper keys for the remaining letters and not stuffing them up on the shifted number keys!
- It seems from frequency and romanization standards that ь is well placed on ' too!
- Frequency in Russian at least further suggests that your call on the ю (4.7‰) vs ъ (0.2‰) ; = ' keys is sound.
- In Bulgarian frequencies (see above) however, the ъ (17.1‰!) is even more common than ю (1.1‰).
- Compliance with the others would suggest moving ъ to = ("Student") and ё to ` ("Student" and standard Russian).
   (This, incidentally, is exactly what vVv suggested in 2009 a couple of posts up!)

You're probably set on your way as you've used it for a long time now. But when I implement it I might still settle on this ё ъ swap because I think that it's best to use the Colemak philosophy of not changing anything without gaining something for it. If the most-used standards have the ё key on ~ and there's no real reason to move it from there, that's probably the best then?

Feedback on these thoughts?

[Update: Edited in some frequency and romanization info]

Last edited by DreymaR (05-Sep-2016 10:47:19)

*** Learn Colemak in 2–5 steps with Tarmak! ***
*** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

Offline
  • 0
  • Reputation: 23
  • From: Belgium
  • Registered: 26-Feb-2008
  • Posts: 482

As you have seen, I too have been moving these around initially, but the reasons I settled on what I did were:
- ё close to phonetically related е and о
- related ъ and ь on similarly related ` and '
- ъ and ь are also commonly transliterated as ` and ', and transliteration was the basis of the layout.

But anway both ё and ъ are rare enough (unlike ь) to move around as you please; logical placement (easy to remember) wins over optimal placement (speed) here.

Offline
  • 0
  • Reputation: 214
  • From: Viken, Norway
  • Registered: 13-Dec-2006
  • Posts: 5,362

Good points. I edited the above a bit, and see your arguments. I may be swayed. ;)

I couldn't find a reference to the use of the backtick in the transliteration of ъ (in that Wikipedia article only " is used)? Could you point the way please?

Last edited by DreymaR (09-Dec-2013 10:48:12)

*** Learn Colemak in 2–5 steps with Tarmak! ***
*** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

Offline
  • 0
  • Reputation: 214
  • From: Viken, Norway
  • Registered: 13-Dec-2006
  • Posts: 5,362

So, I gave the Bulgarian variant another thought. It seems to me that the common Bulgarian phonetic layouts have a few unnecessary differences from the other Cyrillic phonetic layouts?

   Keyboard_Layout_Bulgarian_Phonetic.png
   "Bulgarian phonetic layout", Wikimedia commons – the basis for 'Bulmak' that user Ghoul posted:

Ghoul said:

Here's my Bulmak

ч 1 2 3 4 5 6 7 8 9 0 - =
я в ф п г й л у ъ ; ш щ ю
а р с т д х н е и о '
з ь ц ж б к м , . /

[EDIT: But see below for an updated Bulmak!]

   kb_2.gif
   The "new phonetic" Bulgarian layout (here from Methodius.org)

Apparently, the "new phonetic" ЧШЕРТЪ layout is an attempted standard (BDS 2006) that may have failed in practice but is found both in Windows and Linux. The ЯВЕРТЪ phonetic layout is the most popular layout in Bulgaria and the non-phonetic BDS layout less used. That's an argument for going with Ghoul's "Bulmak" directly. Some thoughts:

- Frequencywise in relation to Russian, ъ is more common (17.1‰!) and ю less (1.1‰); ь is very rare (0.1‰), э hardly used and ы/ё not used in Bulgarian.
- The Bulgarians like to reclaim the ; and ' keys and I agree with that!
- I'd like to harmonize with the Rulemak setup for the XH keys. I realize that 'х' is romanized to 'h' and it's on the H in some existing phonetic layouts.
- I fear that the Bulgarians would not accept the solution of 'ha' on X; there are thus arguments for either XH mapping but the traditional one should win!
- Putting ч away in the upper corner is odd since it's not all that uncommon (14.4‰)?! It probably deserves being on H or X.
- The э could just stay on '\', as Rulemak already puts it out of the highway? Probably on lv3-4 though.
- As ь is so rare, a lv1-2/lv3-4 swap from Rulemak should be in order (ь Ь ' " → ' " ь Ь); that's consistent in my view.
- I should think that ё can be typed with the diaeresis dead key plus 'е', for the rare occasion that a Bulgarian needs it.
- Losing ы, the Y key is free to hold ъ which is the way Bulgarians prefer it. ы could go to lv3-4 of the semicolon key?
- Then, the odd one out is ю which is stuck on the tilde key. This conforms with the "new phonetic" layout (and YaWERTY...).
- Bulgarian also uses Ǹ (U045D/U040D) on some layouts, an I variant. How common is it? Does it deserve a separate place, or is the grave dead key okay for it?
- In the xkb phonetic layouts there are several other glyphs (U0463/U0462 Ѣ, U046B/U046A Ѫ, U046D/U046C Ѭ); these are obsolete so I hope we can do without.

Do these thoughts make sense, or is there something I'm not aware of? This way, Rulemak and 'Bulgemak' would be more consistent with each other.

   Cmk-X-phon-bg.png
   The Colemak phonetic layout for Bulgarian Kyrillic script – my take. See the locale Colemak topic.

Last edited by DreymaR (08-Jan-2016 12:08:30)

*** Learn Colemak in 2–5 steps with Tarmak! ***
*** Check out my Big Bag of Keyboard Tricks for Win/Linux/TMK... ***

Offline
  • 0
  • Reputation: 0
  • Registered: 04-Nov-2008
  • Posts: 17

Hello,

Long time ago I modified Bulmak to my personal taste using common sense. Did not expect
anyone would care until I got a PM today.

Here's the final bulmak version.

ь 1 2 3 4 5 6 7 8 9 0 - =
я ж ф п г й л у ъ ; ш щ
а р с т д х н е и о ' ю
з ч ц в б к м , . /

'ч' is very common so moved in the 'c' position
'ь' is the least used letter in Bulgarian so it's left up at the odd '~' key
'ю' is quite common and gets the '|' key
'э', 'ы' and 'ё' although Cyrillic letters, they are used in Russian and not part of the Bulgarian alphabet. Since the letters are not used in the language there is no reason for them to exist in the layout. If you want to use these letters use Rulemak.
'Ѣ', 'Ѫ' and 'Ѭ' - prehistoric Cyrilic/Bulgarian. Unused. RIP.
'Ǹ' not used either.

Here you can download the latest Bulmak version for Windows.

If I overcome my laziness one year I'll make an official Bulmak thread with OS X and Linux files also for the users to download.

Offline
  • 0