• You are not logged in.

Rulemak: Russian Colemak layout

  • Started by ghen
  • 92 Replies:
  • Reputation: 17
  • From: Chicago
  • Registered: 27-Apr-2016
  • Posts: 206
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: 17
  • From: Chicago
  • Registered: 27-Apr-2016
  • Posts: 206
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: 10
  • From: Belgium
  • Registered: 26-Feb-2008
  • Posts: 427
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: 90
  • From: Oslo, Norway
  • Registered: 13-Dec-2006
  • Posts: 4,501

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: 17
  • From: Chicago
  • Registered: 27-Apr-2016
  • Posts: 206

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: 10
  • From: Belgium
  • Registered: 26-Feb-2008
  • Posts: 427

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: 90
  • From: Oslo, Norway
  • Registered: 13-Dec-2006
  • Posts: 4,501

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: 10
  • From: Belgium
  • Registered: 26-Feb-2008
  • Posts: 427

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: 90
  • From: Oslo, Norway
  • Registered: 13-Dec-2006
  • Posts: 4,501

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: 10
  • From: Belgium
  • Registered: 26-Feb-2008
  • Posts: 427

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: 90
  • From: Oslo, Norway
  • Registered: 13-Dec-2006
  • Posts: 4,501

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: 10
  • From: Belgium
  • Registered: 26-Feb-2008
  • Posts: 427
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: 90
  • From: Oslo, Norway
  • Registered: 13-Dec-2006
  • Posts: 4,501

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: 10
  • From: Belgium
  • Registered: 26-Feb-2008
  • Posts: 427

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