• You are not logged in.

Rulemak: Russian Colemak layout

  • Started by ghen
  • 112 Replies:
  • Reputation: 21
  • From: Chicago
  • Registered: 27-Apr-2016
  • Posts: 221
DreymaR said:
armatus said:

middle col requires wierd finger movement to access; so on bottom line it is better

Yeah, about that. The QWERTY H position is supposed to be a good home-row position. Some feel like you that the middle column is a bit awkward nevertheless. For this, some non-Colemak layouts were created but now we've fixed it in Colemak with the Curl/DH-mod! Look at my sig topics for instance, for more on that.

I use the Curl mod to make the H and D positions better for me. So that's an option. :-)

That might depends of the one's particular qualities. I do not have issues with accessing D and H in the basic Colemak, so I decided to stick with it. On the other hand, people saying that pinkies overall  are easier to do side movements, but I do not feel that, even accessing Shift with pinkie is not so comfortable for me.

BTW, for the native russian typist accessing middle columns should not be an issue, because in йцукен they are packed with frequent letters.

Offline
  • 0
  • Reputation: 21
  • From: Chicago
  • Registered: 27-Apr-2016
  • Posts: 221
armatus said:

it's not wrong. it's rare
http://klava.org/#rus_basic
even rulemak in a list of layouts !!! but no ЯЖЕРТЫ at all

Rulemak is there because of my request at klava.org page in vk. So the other variants may appear the same way quite easily.

armatus said:

most usable in ex USSR is JCUKEN like on picture
others are rare and mostly unknown (i'm only once meet a ЯВЕРТЫ keyboard, but it was long ago in 1991)
JCUKEN has more followers this time of all phonetic layouts in russia

My information may be outdated, but I do not remember anybody was using the "reverse" phonetic layout JCUKEN lately, this is a relic of Soviet era.

armatus said:

---
it's unusual to find other
than qwerty+йцукен in use (((

This is absolutely true. "Phonetic to QWERTY" is used much rarely than йцукен for russian typing.

armatus said:

---
in general it's bad when similar looking keys placed in one place in different layouts
most russian hate c == с placement on qwerty+йцукен
it cause many mistypes in words started by this letter
(like cyjdf, i'm start to type in different layout, but didnt recognize this fast enough)

I would agree to that, with the remark that same key  c == с is worst than the same key  x == x just because there are a way more words starting with "с" in Russian than the words starting with "х".

Offline
  • 0
  • Reputation: 2
  • Registered: 08-Nov-2016
  • Posts: 9
ckofy said:

... because there are a way more words starting with "с" in Russian than the words starting with "х".

yes, not so many, but still a lot starts with Х...
not complete list - http://slovarozhegova.ru/letter.php?charkod=213

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

For Linux/X11 users, Rulemak will be added to the next release of xkeyboard-config (keyboard layouts for X11) as well.

xkeyboard-config released version 2.20 including Rulemak as a Russian keyboard variant, so it will be available to Linux users out of the box (setxkbmap ru rulemak).

I also added the Ruble symbol ₽ to the layout on AltGr+8, where it was put on the standard Russian layout as well.

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

Grats!

Not sure whether to keep Rulemak in my files or not. I'm leaning towards keeping it there for people who look for the "eD" solution to Kyrillic. Also, there's now Rulemak/Bulmak definitions for much more than Russian.

Not sure where the Ruble should ideally be... in theory it's annoying to muck up the layout more than necessary so it should be on AltGr+Shift+4 where "alternative to $" usually resides (and on the currency dead key in addition of course). But if the russkijs are used to finding it on AltGr+8, I guess it may be worth putting it there.

[edit: Is Ruble on the current currency dead key in Linux? I couldn't find it anywhere in the en_US.UTF-8 compose table?]

Last edited by DreymaR (07-Feb-2017 14:15:52)

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

Offline
  • 0
  • Reputation: 21
  • From: Chicago
  • Registered: 27-Apr-2016
  • Posts: 221

That might be a new trend in Russia, but at my time living there I do not remember of been using the Ruble symbol anywhere. It was just referred as "Руб." or "руб".
Heck, I do not think that that fancy sign existed at the beginning of 2000.
From Wikipedia for Ruble sign: "The design was approved on 11 December 2013". I'm so old...

Offline
  • 0
  • Reputation: 0
  • Registered: 19-Nov-2017
  • Posts: 1

Hey Everyone! I struggled a bit with figuring out how to install the Rulemak layout to my PC, so I made this video tutorial. This should help anyone trying to install any alternative keyboard layout from a script.

Special Thanks to Geert Hendrickx for explaining how and trouble shooting my problems:)

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

Hi,

I'm considering to abandon the Latin (Colemak) letter plane on AltGr.  The original idea was to be able to type a few words in the Latin alphabet, like a URL or e-mail address, but I've never really used this feature myself.  It's just too awkward to use AltGr for anything more than a few consecutive letters.  Proper layout switching/shifting through a dedicated hotkey is probably more appropriate, than putting this "feature" in the layout itself.  I found no other layout doing that, either.

So this would make room for extra Cyrillic letters for other Slavic languages, and I have a good idea how I'd like to implement that.  Missing letters are:

Ukrainian and Rusyn: ґ є і ї
Belarusian: і ў '
Bulgarian: (no extra letters)
Serbian: ђ ј љ њ ћ џ
Macedonian: ѓ ѕ ј љ њ ќ џ (ѐ ѝ)
Montenegrin: ђ з́́ ј љ њ с́ ћ џ

Proposal:
Ukrainian and Belarusian letters on related Russian letters: г/ґ е/є и/і ы/ї у/ў.
Most Serbian and Macedonian letters on the preceding letter in the corresponding alphabet, to which they are phonetically related:
д/ђ ѕ/з л/љ н/њ т/ћ ч/џ, except ј/й (same sound), and Macedonian ќ and ѓ via accent combinations (possible AltGr positions would be on в and б, below Serbian equivalents т/ћ and д/ђ, respecively – Macedonian users will want to swap these).
Montenegrin accented letters з́́ and с́ have no Unicode character of their own, and will be composed through dead keys.

The goal is not to become a proper layout for each of these languages, as certain Russian letters will be useless and letter frequencies will differ (see Bulgarian discussion), but, to be like Colemak for Latin scripts and have the most common Slavic Cyrillic letters available for occasional use.  Of course the layout can be modified to anyone's native needs or taste.

Not in scope: the many historic Cyrillic letters, and non-Slavic languages using the Cyrillic alphabet, that would take us way too far.

Thoughts?

┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
│ Ё ``│ ! ˝ │ @   │ №   │ $   │ %   │ ^ ¯ │ &   │ *   │ (   │ )   │ _ — │ Ъ + ┃ ⌫       ┃
│ ё ` │ 1 ´ │ 2 ¨ │ 3 # │ 4 ¢ │ 5 € │ 6 ˘ │ 7   │ 8 ₽ │ 9 [ │ 0 ] │ - – │ ъ = ┃Backspace┃
┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
┃       ┃ Я   │ Ж   │ Ф   │ П   │ Г Ґ │ й Ј │ Л Љ │ У Ў │ Ы Ї │ Ю   │ Ш { │ Щ } ┃ Enter ┃
┃ Tab ↹ ┃ я   │ ж   │ ф   │ п   │ г ґ │ й ј │ л љ │ у ў │ ы ї │ ю   │ ш « │ щ » ┃   ⏎   ┃
┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓      ┃
┃ ⌫ Back ┃ А   │ Р   │ С   │ Т Ћ │ Д Ђ │ Ч Џ │ Н Њ │ Е Є │ И І │ О   │ Ь " │ Э | ┃      ┃
┃  space ┃ а   │ р   │ с   │ т ћ │ д ђ │ ч џ │ н њ │ е є │ и і │ о   │ ь ' │ э \ ┃      ┃
┣━━━━━━━━┻━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┲━━━┷━━━━━┻━━━━━━┫
┃          ┃ З Ѕ │ Х   │ Ц   │ В   │ Б   │ К   │ М   │ ;   │ :   │ ?   ┃                ┃
┃  Shift ⇧ ┃ з ѕ │ х   │ ц   │ в   │ б   │ к   │ м   │ , < │ . > │ /   ┃     Shift ⇧    ┃
┣━━━━━━━┳━━┻━━━━┳┷━━━━━┷┱────┴─────┴─────┴─────┴─────┴─────┴┲━━━━┷━━┳━━┻━━━━┳━━━━━━━┳━━━┛
┃       ┃       ┃       ┃                                   ┃       ┃       ┃       ┃
┃ Ctrl  ┃ Meta  ┃  Alt  ┃                Space              ┃AltGr ⇮┃ Menu  ┃ Ctrl  ┃
┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛
Last edited by ghen (21-Feb-2018 21:22:43)
Offline
  • 0
  • Reputation: 214
  • From: Viken, Norway
  • Registered: 13-Dec-2006
  • Posts: 5,363

As we've discussed, Bulgarian and Serbian/Macedonian may need a different layout. Of course, it'd still be nice to have those letters handy. But I imagine the latin set could be useful for many nevertheless, for typing names and other separate words without having to swap layouts. Maybe I'd go for the special letters as dead key or combine sequences...?

But I'll have to admit that I don't feel strongly about either position.

Last edited by DreymaR (16-Feb-2018 16:32:51)

*** 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

I do think the ability to switch between alphabets quickly should be a function of the input method, not of the layout itself.  No standard Russian, Greek, Armenian etc layouts have Latin letters, although their users all have the same need for them.  So I think it's improper to build this specifically into Rulemak as an exception.

I now use the Menu key as Mode_switch to accomplish the same: this key switches layouts only while it is pressed.  Thus gaining back an entire third and fourth layout layer for extra Cyrillic letters, in the spirit of Colemak's very broad multilingual support for the Latin script, without the intention of being optimal for all these languages at the same time.

Yes, the South Slavic languages are further away from Russian, but the East Slavic languages are quite closely related, and will have a relatively useful layout with this.

Even though many of the extra Cyrillic letters have overlapping/conflicting roles, I'm quite satisfied with the proposed mapping.  I even have good spots in mind for the "recent" historic letters (ѣ, ѵ, ѳ on я, ж, ф), but I doubt they are of any use beyond academics, so I won't overload the layout with them.

Only the accented letters are still bothering me – give them a dedicated AltGr mapping or leave them as dead key combinations only?  There are technical difficulties here as well:  Montenegrin з́́ and с́ are not encoded as precomposed characters in Unicode, so they can not be implemented in xkb layouts (only single Unicode characters can be), but they are missing in X11 dead key / Compose definitions as well.  So I'm currently putting Unicode combining characters into the layout, instead of dead keys, but they have to be typed after the letter instead of before.

Last edited by ghen (21-Feb-2018 22:28:35)
Offline
  • 0
  • Reputation: 214
  • From: Viken, Norway
  • Registered: 13-Dec-2006
  • Posts: 5,363

You're right I guess. Actually, I've seen other layouts with latin layers (Hebrew for instance?) but it's not necessary.

I'd probably "overload" the layout nevertheless! Or at least put some commented-out lines into xkb to allow the overloading to take place. There's always someone who need that stuff, unless it's really arcane. As long as those letters sit in non-obtrusive positions, they aren't bothering the public.

Sounds like the compose tables need fixing to produce the Montenegrin accented letters. But these days, there's always combining accents as a fallback. I don't think they should completely replace the dead keys just yet though. One possibility is having a dead key on AltGr+<key> and the combining accent on AltGr+Shift+<key>. Then, it's also fairly simple to swap them for users who want that.

Last edited by DreymaR (19-Feb-2018 14:11:05)

*** 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

Even the most "recent" historic letters appear to be really useless now.  In fact, they were already obsolete by the time they were officially dropped 100 years ago.

So I considered adding support for extra, non-Slavic alphabets instead, but it's very difficult to map all those additional, often similar/conflicting, letters consistently.  Also, the non-Slavic alphabets reuse very little letters of the Slavic ones discussed above, but instead uses many different letters for the same or similar phonemes.  The only "useful" combination I could come up with was with Kazakh (extra letters ә, ғ, қ, ң, һ, ө, ү, ұ, і), but it's already a stretch.

A more elegant solution would be to have two separate international Rulemak extensions: one for the Slavic languages as discussed above, and another for non-Slavic languages.  This leads to more consisent AltGr mappings, eg. for all the "tailed" letters, which cannot be formed through combining sequences: җ ӆ ҭ ң қ ӎ etc.  But I'm not literate in any of these languages, so I won't be actually implementing this, I just leave the suggested mappings below.

The basic Slavic extension will be my "official" Rulemak implementation from now on.
(Note: only AltGr keys changing, the standard Russian letter layout stays the same.)

Rulemak + Slavic: Ukrainian, Belarusian, Serbian, Macedonian
[XKB] [PKL]

┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
│ Ё ``│ ! ˝ │ @   │ №   │ $   │ %   │ ^ ¯ │ &   │ * ₴ │ (   │ )   │ _ — │ Ъ + ┃ ⌫       ┃
│ ё ` │ 1 ´ │ 2 ¨ │ 3 # │ 4 ¢ │ 5 € │ 6 ˘ │ 7   │ 8 ₽ │ 9 [ │ 0 ] │ - – │ ъ = ┃Backspace┃
┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
┃       ┃ Я   │ Ж   │ Ф   │ П   │ Г Ґ │ й Ј │ Л Љ │ У Ў │ Ы Ї │ Ю : │ Ш { │ Щ } ┃ Enter ┃
┃ Tab ↹ ┃ я   │ ж   │ ф   │ п   │ г ґ │ й ј │ л љ │ у ў │ ы ї │ ю ; │ ш « │ щ » ┃   ⏎   ┃
┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓      ┃
┃ ⌫ Back ┃ А   │ Р   │ С   │ Т Ћ │ Д Ђ │ Ч Џ │ Н Њ │ Е Є │ И І │ О   │ Ь " │ Э | ┃      ┃
┃  space ┃ а   │ р   │ с   │ т ћ │ д ђ │ ч џ │ н њ │ е є │ и і │ о   │ ь ' │ э \ ┃      ┃
┣━━━━━━━━┻━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┲━━━┷━━━━━┻━━━━━━┫
┃          ┃ З Ѕ │ Х   │ Ц   │ В Ќ │ Б Ѓ │ К   │ М   │ ;   │ :   │ ?   ┃                ┃
┃  Shift ⇧ ┃ з ѕ │ х   │ ц   │ в ќ │ б ѓ │ к   │ м   │ , < │ . > │ /   ┃     Shift ⇧    ┃
┣━━━━━━━┳━━┻━━━━┳┷━━━━━┷┱────┴─────┴─────┴─────┴─────┴─────┴┲━━━━┷━━┳━━┻━━━━┳━━━━━━━┳━━━┛
┃       ┃       ┃       ┃                                   ┃       ┃       ┃       ┃
┃ Ctrl  ┃ Meta  ┃  Alt  ┃                Space              ┃AltGr ⇮┃ Menu  ┃ Ctrl  ┃
┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛

Rulemak + Slavic + Kazakh + historical

┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
│ Ё ``│ ! ˝ │ @   │ №   │ $   │ %   │ ^ ¯ │ & Ӏ │ * ₴ │ ( Ү │ ) Ұ │ _ — │ Ъ + ┃ ⌫       ┃
│ ё ` │ 1 ´ │ 2 ¨ │ 3 # │ 4 ¢ │ 5 € │ 6 ˘ │ 7 ӏ │ 8 ₽ │ 9 ү │ 0 ұ │ - – │ ъ = ┃Backspace┃
┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
┃       ┃ Я Ѣ │ Ж Ѵ │ Ф Ѳ │ П Ғ │ Г Ґ │ й Ј │ Л Љ │ У Ў │ Ы Ї │ Ю : │ Ш { │ Щ } ┃ Enter ┃
┃ Tab ↹ ┃ я ѣ │ ж ѵ │ ф ѳ │ п ғ │ г ґ │ й ј │ л љ │ у ў │ ы ї │ ю ; │ ш « │ щ » ┃   ⏎   ┃
┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓      ┃
┃ ⌫ Back ┃ А Ә │ Р   │ С   │ Т Ћ │ Д Ђ │ Ч Џ │ Н Њ │ Е Є │ И І │ О Ө │ Ь " │ Э | ┃      ┃
┃  space ┃ а ә │ р   │ с   │ т ћ │ д ђ │ ч џ │ н њ │ е є │ и і │ о ө │ ь ' │ э \ ┃      ┃
┣━━━━━━━━┻━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┲━━━┷━━━━━┻━━━━━━┫
┃          ┃ З Ѕ │ Х Һ │ Ц   │ В Ќ │ Б Ѓ │ К Қ │ М Ң │ ;   │ :   │ ?   ┃                ┃
┃  Shift ⇧ ┃ з ѕ │ х һ │ ц   │ в ќ │ б ѓ │ к қ │ м ң │ , < │ . > │ /   ┃     Shift ⇧    ┃
┣━━━━━━━┳━━┻━━━━┳┷━━━━━┷┱────┴─────┴─────┴─────┴─────┴─────┴┲━━━━┷━━┳━━┻━━━━┳━━━━━━━┳━━━┛
┃       ┃       ┃       ┃                                   ┃       ┃       ┃       ┃
┃ Ctrl  ┃ Meta  ┃  Alt  ┃                Space              ┃AltGr ⇮┃ Menu  ┃ Ctrl  ┃
┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛

Rulemak + generic non-Slavic: Kazakh, Kyrgyz, Tatar, Uzbek, Mongolian, Ossetian, Tajik, Dungan, ...
(all merely accented letters are left to compose combinations.)

┌─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┬─────┲━━━━━━━━━┓
│ Ё ``│ ! ˝ │ @   │ №   │ $   │ %   │ ^ ¯ │ & Ӏ │ * ¤ │ ( Ұ │ ) ] │ _ — │ Ъ + ┃ ⌫       ┃
│ ё ` │ 1 ´ │ 2 ¨ │ 3 # │ 4 ¢ │ 5 € │ 6 ˘ │ 7 ӏ │ 8 ₽ │ 9 ұ │ 0 [ │ - – │ ъ = ┃Backspace┃
┢━━━━━┷━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┺━┳━━━━━━━┫
┃       ┃ Я Ӕ │ Ж Җ │ Ф   │ П Ҕ │ Г ғ │ й Ј │ Л Ӆ │ У Ү │ Ы Ҩ │ Ю : │ Ш { │ Щ } ┃ Enter ┃
┃ Tab ↹ ┃ я ӕ │ ж җ │ ф   │ п ҕ │ г Ғ │ й ј │ л ӆ │ у ү │ ы ҩ │ ю ; │ ш « │ щ » ┃   ⏎   ┃
┣━━━━━━━┻┱────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┴┬────┺┓      ┃
┃ ⌫ Back ┃ А Ә │ Р Ҏ │ С Ҫ │ Т Ҭ │ Д Џ │ Ч Ҷ │ Н Ң │ Е Є │ И І │ О Ө │ Ь " │ Э | ┃      ┃
┃  space ┃ а ә │ р ҏ │ с ҫ │ т ҭ │ д џ │ ч ҷ │ н ң │ е є │ и і │ о ө │ ь ' │ э \ ┃      ┃
┣━━━━━━━━┻━┱───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┬───┴─┲━━━┷━━━━━┻━━━━━━┫
┃          ┃ З Ӡ │ Х Ҳ │ Ц Ҵ │ В Һ │ Б Ҟ │ К Қ │ М Ӎ │ ;   │ :   │ ?   ┃                ┃
┃  Shift ⇧ ┃ з ӡ │ х ҳ │ ц ҵ │ в һ │ б ҟ │ к қ │ м ӎ │ , < │ . > │ /   ┃     Shift ⇧    ┃
┣━━━━━━━┳━━┻━━━━┳┷━━━━━┷┱────┴─────┴─────┴─────┴─────┴─────┴┲━━━━┷━━┳━━┻━━━━┳━━━━━━━┳━━━┛
┃       ┃       ┃       ┃                                   ┃       ┃       ┃       ┃
┃ Ctrl  ┃ Meta  ┃  Alt  ┃                Space              ┃AltGr ⇮┃ Menu  ┃ Ctrl  ┃
┗━━━━━━━┻━━━━━━━┻━━━━━━━┹───────────────────────────────────┺━━━━━━━┻━━━━━━━┻━━━━━━━┛
DreymaR said:

One possibility is having a dead key on AltGr+<key> and the combining accent on AltGr+Shift+<key>. Then, it's also fairly simple to swap them for users who want that.

I was already using AltGr+Shift for related accent pairs (grave/double grave, acute/double acute, breve/macron), but X11 actually has a nicer solution: the dead key applied to itself results in the corresponding combining character.  This means equivalent options are: <dead_acute> <letter> = <letter> <dead_acute> <dead_acute> = <letter> <combining_acute>.  So the XKB layout uses proper dead keys now, which can directly or indirectly form all needed combinations.  For PKL the dead key combinations have to be completely mapped in the layout itself, this is still to-do.

Last edited by ghen (25-Feb-2018 15:56:22)
Offline
  • 0
  • Reputation: 214
  • From: Viken, Norway
  • Registered: 13-Dec-2006
  • Posts: 5,363

Indeed, if those historic things are crud they shouldn't be included. There's a lot of deprecated phonetics glyphs that keep creeping into ambitious layouts like BEPO but I try to weed those out of mine. It takes knowledge to discern which is which though...

That XKB solution for combining accents is nice. We could use something similar with PKL. Not sure if hitting the accent twice could work that way without hacking PKL a bit, but I can do that and I think it's a neat idea. Accent+Space should be kept for releasing the normal version of the accent (´`^˝ˇ˛˘°¯¨ etc), but where there isn't one I've used the combining version there. In the current PKL implementation that's what hitting the accent twice does too.

Last edited by DreymaR (22-Feb-2018 10:01:01)

*** 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
DreymaR said:

Indeed, if those historic things are crud they shouldn't be included. There's a lot of deprecated phonetics glyphs that keep creeping into ambitious layouts like BEPO but I try to weed those out of mine. It takes knowledge to discern which is which though...

One exception may be Church Slavonic, not sure how relevant this still is.  But I'm currently quite happy with the limited "contemporary Slavic languages" layout.  Acamedic/scholar users of archaic alphabets are not a target audience for Rulemak ;-) and quite surely know how to modify keyboard layouts for themselves.

That XKB solution for combining accents is nice. We could use something similar with PKL. Not sure if hitting the accent twice could work that way without hacking PKL a bit, but I can do that and I think it's a neat idea. Accent+Space should be kept for releasing the normal version of the accent (´`^˝ˇ˛˘°¯¨ etc), but where there isn't one I've used the combining version there. In the current PKL implementation that's what hitting the accent twice does too.

Since PKL deadkeys are just a mapping of arbitrary Unicode codepoints, it's possible to map something to the "naked" combining character.  Just not the deadkey itself though (like XKB), since it's not a character on its own.  Anyway, with PKL we can define the dead key combinations in the layout, and do not depend on the system wide ones as with XKB, so we should not need the separate combining characters (except for Montenegrin з́ and с́, as these have no precomposed form and can only be constructed with combining characters – but it seems no native Cyrillic layout supports them, only in the equivalent Latin script).

Last edited by ghen (22-Feb-2018 12:59:17)
Offline
  • 0
  • Reputation: 214
  • From: Viken, Norway
  • Registered: 13-Dec-2006
  • Posts: 5,363

Turns out that PKL returns entry # 0 from the deadkey table when a deadkey is pressed twice. So you can but the combining accents there. For the special accents that don't have a base glyphs, I had already done that.

I had specified entry 32 (Space) as returning the base glyph and entry 160 (NBSP) as returning the combining accents. But not everyone use non-breaking Space.

The nice thing with my current PKL files is that if you hold down AltGr and type, say, 6(^) followed by Space you will indeed get the combining circumflex as my layout has NBSP on AltGr+Space. I'm clever sometimes. ;-)

So, typing
AltGr+6, a → â (precombined glyph)
a, AltGr+6, space → a^ (base glyph)
a, AltGr+{6,space} → â (combining accent)

The shitty thing about the combining accents is that they're so poorly implemented in many places. For instance, my browser shows the combined â correctly when I edit this post, but when I look at it in its published state it's wrong as the accent doesn't sit on top of the letter and has the wrong size. Also, computer sorting and interpretation can be troublesome.

Hence, I don't think I'll implement the XKB idea fully just yet.

Last edited by DreymaR (22-Feb-2018 13:05:41)

*** 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: 13-Sep-2017
  • Posts: 9

Since Rulemak has been moved to base.extras.lst, users of some Linux DEs (e.g. Xfce) will probably still have to add it using Big Bag of Keyboard Tricks or manually.

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

That's an issue with those DE's not displaying the extras layouts, rather than with any of those extra layouts themselves. (it's not reasonable to expect Rulemak to be considered a major/base layout - gladly Colemak is already.)

I fixed it in my XFCE by configuring the rulemak layout variant directly in ~/.config/xfce4/xfconf/xfce-perchannel-xml/keyboard-layout.xml:

<property name="XkbLayout" type="string" value="us,ru"/>
<property name="XkbVariant" type="string" value="colemak,rulemak"/>

Once it's present there, you can continue to use the Settings/Keyboard dialog as usual, it won't wipe it.

Alternatively, set it to "Use system defaults", and configure your keyboard layouts outside of XFCE, eg. by using setxkbmap in your .xsession.

Offline
  • 0
  • Reputation: 0
  • Registered: 13-Sep-2017
  • Posts: 9

I was simply trying to warn people, since the extra layouts not being listed by localectl either is confusing.

Last edited by GeneralFailer (03-Jun-2018 17:02:04)
Offline
  • 0
  • Reputation: 1
  • Registered: 29-Dec-2018
  • Posts: 3

Hey guys! I've been working on an extension for Rulemak that covers both Slavic and non-Slavic languages (pretty much as many Cyrillic languages as possible), and I was asked to share it here. The only issue is that I'm not sure how to upload and present the keyboard files like has been done above.... Perhaps one of you all could help with that. The base letters (the ones that don't use AltGr) are the same as normal Rulemak, so I'll only put pictures of AltGr and AltGr+Shift:

zqs3tlJ.png
WDf9IqU.png

I have mapped the layout taking into consideration frequency of letters in each language, number of speakers of each language, and intuitiveness of placement to make the layout as optimal as possible. Compared with the previous layouts posted here, one notable difference is that letter Ј is moved down to AltGr+Period, together with the І related letters, on account of AltGr+qwertyY being exceedingly difficult to type compared to how common the letter is. It is also important to note that: (1) the letter on AltGr(+Shift)+C is not a second Cyrillic dotted i (І і), but Cyrillic palochka Ӏ ӏ (U+04C0 U+04CF), an important letter that denotes ejectives in many Caucasian languages; and (2) AltGr(+Shift)+Slash holds "right single (and double) quotation mark" (U+2019 (U+201D)), an important key in Belorussian and other Cyrillic languages, and so should not be confused with the normal quotation mark(s) on the key near it.

Some languages must use combining accents like U+0301 (found on AltGr layers of keys `,1,2,3) to get certain letters (for example, Ӑ, Ӟ, Ү́, Ы̄), but this was avoided for certain exceptionally common letters (Ї, Ӧ, Ў).

The layout supports all of the languages on this Wikipedia chart of Cyrillic alphabets with a few exceptions (see below). Additionally, the layout supports (at least) all of the languages with above 10,000 speakers (in both the categories of European Russia and Asian Russia) on this list of languages in Russia, with a few exceptions:

  • Abkhaz
    Bezhta superscript н
    Khakas Ӌ
    Khanty Ԯ
    Kildin Sami
    (Cyrillic) Northern Kurdish Ԛ and Ԝ

The layout does not support archaic letters (like Ѭ or Ѣ), as they would take up too much valuable space.

Current issues:

  • AltGr+Shift combinations don't work for qwerty positions U, I, O, H, and N, making capital versions of the secondary letters on those keys (Љ, Ү, Ї, Џ, Қ) untypeable. If anyone knows why this issue is happening, please tell!
    (Not really an issue, but:) Macedonian Ќ and Ѓ (which I gather are commonly viewed as separate letters from their non-accented base letters) are typed by composing the base letter with U+0301 (combining acute accent).

Last edited by protocactus (30-Dec-2018 00:51:36)
Offline
  • 1
  • Reputation: 23
  • From: Belgium
  • Registered: 26-Feb-2008
  • Posts: 482

Hi protocactus, and thanks for your insights on the Rulemak AltGr layout.  I too have spent quite some time trying to come up with a layout with "broad" Slavic and non-Slavic Cyrillic alphabet support, but found it very difficult given the enormous variety of extra letters – often visually and functionally similar to each other, yet unique to just one or a few languages.  Clearly the Soviet linguists that designed this letter soup did not have future digitalization in mind, or they would have stuck to a basic set of letters with standard(ized) diacritics, I hope. :-)

Failing to find a good compromise, I narrowed it down to the Slavic languages, specifically the letters present in Windows-1251, as these are also the only ones with universally "guaranteed" font support (see WGL-4).  This became my official Rulemak AltGr layout presented above (first variant), and I'm still quite happy with it.  Later on I added palochka (on AltGr+/) and the pre-reform Russian letters ѣ, ѳ, ѵ, but anything beyond that requires compromises on supported languages and logical letter placement.

So I stopped there and switched to designing a set of X11 Compose key sequences to enter all the extra letters, with the bonus that this would benefit users of *any* Cyrillic keyboard layout (in Linux), not just Rulemak.  But this is still a work in progress.

Out of curiosity: which of the Cyrillic script languages do you understand? (natively?)
And do you know of any other universal Cyrillic keyboard design efforts?  I found this this Russian-Ukrainian-Belorusian layout (included with Linux xkeyboard-layouts), and some Church Slavonic extensions, but nothing with a wider scope.

Offline
  • 0
  • Reputation: 1
  • Registered: 29-Dec-2018
  • Posts: 3

Sorry for the late reply; I've been away for New Year's!

I've been studying Russian for around a year now, but ever since I've started trying to research about Russian minority groups (particularly Turkic ones) I've had a hard time with not being able to type necessary letters. So I guess I took it on myself to make a layout filled with any and every letter I could possibly need, haha.

Compose sequences sound like a good idea! That could easily amend the problem of there being so many variants of letters that represent the same sound, as you mentioned. Are those something that could be potentially implemented on other OSes, like Windows?

I don't actually know about any other universal layouts.... I didn't even think to look, considering the chances one would be set up for Rulemak are pretty low, haha. It'd be something interesting to analyze if one does crop up though!

Offline
  • 0
  • Reputation: 1
  • Registered: 21-Jan-2020
  • Posts: 1

I'm going to resurrect this topic to propose a general non-Slavic Cyrillic AltGr layer that covers as many major languages as possible without getting too cluttered.

Adyghe, Avar, Buryat, Chechen, Dargin, Ingush, Kabardian, Kazakh, Kyrgyz, Lezgian, Mongolian, Tajik, Tatar, Turkmen, Uzbek

- җ - - ғ - ӯ ұ ӣ ү
 ә - - ӏ - - ң ё і ө
  - ҳ һ - - қ -

I understand that it's not as comprehensive as some of the layouts posted previously on this thread, but I think separate Slavic and non-Slavic layouts are probably better than trying to squeeze in as many letters as possible at the expense of typographical characters.

Last edited by TestPost00001 (21-Jan-2020 18:17:40)
Offline
  • 1
  • Reputation: 21
  • From: Chicago
  • Registered: 27-Apr-2016
  • Posts: 221

I'm using Rulemak from time to time to type in Russian, not too often though, because mostly I type Russian at phone.
Few changes I did recently, which I believe works well, is to switch some letters. First, switch З and Ц. ЗА bigram is more frequent than ЦА, and overall З in Russian is used   way more frequent than Z in English. Another pair is К and Ч, again К is way more frequent in Russian to be in the vanila Colemak position in the corner. It works better if mapped to Colemak DH, but it has another issue, В in Russian is way more frequent than V in English, it is better to keep left hand letters in standard Colemak position.
Again, this is not for everybody, Rulemak is good enough to type few sentences once in a while, but my point is that such small changes do not affect overall experience of switching from Colemak to Rulemak but improve typing in Russian. After all, ЙЦУКЕН mapping is completely different from QWERTY, and that does not confuse Russian users at all.

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

Interesting. Do you have a diagram of your layout? And did you use any of the variants with extra kyrillic glyphs, or the old standard with latin letters on AltGr?

*** 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

I type Russian more often on MessagEase than on Rulemak these days. :-)  So for me personally, an intuitive layout is still preferred over an optimized one.

One thing I'm still not happy with in Rulemak is Ъ's position on =/+, as those symbols are used more often than the hard sign itself.
Given that Ъ is by far the rarest letter in (modern) Russian, I thought about putting it on AltGr+Ь, like other "paired" Slavic letters, but the straight single and double quotes are there, plus I would still prefer the main Rulemak layout not to depend on layers.  Maybe I should put it there as well as on the ISO 102nd key (which I don't have myself).  The quotes could move to shifted numbers (" is on Shift-2 in the native Russian layout, and it doesn't have the straight single quote).

Offline
  • 0