• You are not logged in.

Locale Colemak variants for several countries (the eDreymaR way)!

  • Started by DreymaR
  • 26 Replies:
  • Reputation: 9
  • From: Belgium
  • Registered: 26-Feb-2008
  • Posts: 418

Similarly, the modern Georgian keyboard layout is, more or less phonetically, based on Qwerty as well (the traditional typewriter layout is no longer used).  Although the Georgian Mkhedruli alphabet has 33 letters, it has no capital letters, so by putting extra letters on Shift and AltGr, they were able to occupy only the standard letter block, and keep all numbers and symbols in original Qwerty position.  This allows for another straight-forward Colemak variant:

ქ წ ფ პ გ ჯ ლ უ ყ ; [ ]
 ა რ ს ტ დ ჰ ნ ე ი ო '
  ზ ხ ც ვ ბ კ მ , . /

I don't know the Georgian language at all, so this is just a theoretical exercise, but in xkb it would look like this:

partial alphanumeric_keys
xkb_symbols "colemak" {
    include "ge(basic)"

    name[Group1]= "Georgian (Colemak)";

    key <AD01> { [ Georgian_khar, Q                            ] };
    key <AD02> { [ Georgian_cil,  Georgian_char                ] };
    key <AD03> { [ Georgian_phar, F,             Georgian_fi   ] };
    key <AD04> { [ Georgian_par,  P                            ] };
    key <AD05> { [ Georgian_gan,  G,             0x010010f9    ] };
    key <AD06> { [ Georgian_jhan, Georgian_zhar, 0x010010f7    ] };
    key <AD07> { [ Georgian_las,  L                            ] };
    key <AD08> { [ Georgian_un,   U                            ] };
    key <AD09> { [ Georgian_qar,  Y,             0x010010f8    ] };
    key <AD10> { [ semicolon,     colon                        ] };

    key <AC01> { [ Georgian_an,   A,             0x010010fa    ] };
    key <AC02> { [ Georgian_rae,  Georgian_ghan, 0x010000ae    ] };
    key <AC03> { [ Georgian_san,  Georgian_shin                ] };
    key <AC04> { [ Georgian_tar,  Georgian_tan                 ] };
    key <AC05> { [ Georgian_don,  D                            ] };
    key <AC06> { [ Georgian_hae,  H,             Georgian_hoe  ] };
    key <AC07> { [ Georgian_nar,  N,             0x010010fc    ] };
    key <AC08> { [ Georgian_en,   E,             Georgian_he   ] };
    key <AC09> { [ Georgian_in,   I,             Georgian_hie  ] };
    key <AC10> { [ Georgian_on,   O                            ] };

    key <AB01> { [ Georgian_zen,  Georgian_jil                 ] };
    key <AB02> { [ Georgian_xan,  X,             Georgian_har  ] };
    key <AB03> { [ Georgian_can,  Georgian_chin, 0x010000a9    ] };
    key <AB04> { [ Georgian_vin,  V,             Georgian_we   ] };
    key <AB05> { [ Georgian_ban,  B                            ] };
    key <AB06> { [ Georgian_kan,  K                            ] };
    key <AB07> { [ Georgian_man,  M                            ] };

    include "capslock(backspace)"
    include "level3(ralt_switch)"
    include "space(level4)"

};
Last edited by ghen (10-Mar-2018 16:36:55)
Offline
  • 1
  • Reputation: 9
  • From: Belgium
  • Registered: 26-Feb-2008
  • Posts: 418

Any Qwerty-based layout can systemetically be remapped to Colemak in the same way.
The following sed script does so for xkb layouts:

#!/bin/sed -f
  
s/AC04/AD03/;t  # E>F
s/AD05/AC04/;t  # F>T
s/AC05/AD05/;t  # T>G
s/AC03/AC05/;t  # G>D
s/AC02/AC03/;t  # D>S
s/AD04/AC02/;t  # S>R
s/AD10/AD04/;t  # R>P
s/AC10/AD10/;t  # P>;
s/AD09/AC10/;t  # ;>O
s/AD06/AD09/;t  # O>Y
s/AC07/AD06/;t  # Y>J
s/AB06/AC07/;t  # J>N
s/AC08/AB06/;t  # N>K
s/AD03/AC08/;t  # K>E

s/AC09/AD07/;t  # U>L
s/AD08/AC09/;t  # L>I
s/AD07/AD08/;t  # I>Y

This can be applied to the layout to be shuffled from within vim: use "v" to visually select the layout section and pipe it through the script: "! sed -f colemakize.sed | sort -k 2r,2.4", and save the result as a new colemak layout.  Voila. :-)

Offline
  • 1