LinuxQuestions.org
Welcome to the most active Linux Forum on the web.
Go Back   LinuxQuestions.org > Blogs > Mol_Bolom
User Name
Password

Notices

  1. Old Comment

    Cherokee Unicode in Linux

    Well, I've got more news for anyone who'd like to extend Cherokee beyond X (or below X, ). I've got a font which works in the console, however, certain kernels or drivers don't work with it and unfortunately I don't have that much knowledge on how to fix it as of yet.

    cwy1-16.psfu

    Also, I began using a different layout for typing Cherokee on X that is more DVORAK like. All the vowels are on the left side and the consonants, except for Ꮤ, Ꭷ, Ꮦ, Ꮨ, Ꮬ, and Ꮝ, are located on the right side. The only character that will be fairly out of place is the semicolon (';') which is now located at the "z" key.

    chr xkb symbol file.

    Code:
    partial alphanumeric_keys
    xkb_symbols "basic" {
    
        name[Group1]= "Cherokee / US";
    
        // Alphanumeric section
        key <TLDE> { [       grave,   asciitilde	             ] };
        key <AE01> { [           1,       exclam                 ] };
        key <AE02> { [           2,           at                 ] };
        key <AE03> { [           3,   numbersign                 ] };
        key <AE04> { [           4,       dollar                 ] };
        key <AE05> { [           5,      percent                 ] };
        key <AE06> { [           6,  asciicircum                 ] };
        key <AE07> { [           7,    ampersand                 ] };
        key <AE08> { [           8,     asterisk                 ] };
        key <AE09> { [           9,    parenleft                 ] };
        key <AE10> { [           0,   parenright                 ] };
        key <AE11> { [       minus,   underscore                 ] };
        key <AE12> { [       equal,         plus                 ] };
        key <AD01> { [       q,    Q,	U0242		     ] };  // Glottal stop
        key <AD02> { [       w,    W,	U13CD		] };
        key <AD03> { [       e,    E,	U13A4           ] };
        key <AD04> { [       r,    R,	U13A3           ] };
        key <AD05> { [       t,    T,	U13D4		] };
        key <AD06> { [       y,    Y,	U13EF           ] };
        key <AD07> { [       u,    U,	U13B3           ] };
        key <AD08> { [       i,    I,	U13E3           ] };
        key <AD09> { [       o,    O,	U13CC           ] };
        key <AD10> { [       p,    P,	U13C6           ] };
        key <AD11> { [ bracketleft,    braceleft                 ] };
        key <AD12> { [bracketright,   braceright                 ] };
        key <AC01> { [       a,    A,	U13A0, U02E5    ] };  // U02E5-E8  tone marker symbols.
        key <AC02> { [       s,    S,	U13A5, U02E6    ] };
        key <AC03> { [       d,    D,	U13A2, U02E7    ] };
        key <AC04> { [       f,    F,	U13A1, U02E8    ] };
        key <AC05> { [       g,    G,	U13A9		] };
        key <AC06> { [       h,    H,	U13E9           ] };
        key <AC07> { [       j,    J,	U13AD           ] };
        key <AC08> { [       k,    K,	U13A6           ] };
        key <AC09> { [       l,    L,	U13D3           ] };
        key <AC10> { [   semicolon,        colon,   U13BE,    colon                 ] };
        key <AC11> { [  apostrophe,     quotedbl            ] };
        key <AB01> { [       z,    Z,       semicolon	] };
        key <AB02> { [       x,    X,	U13DC		] };		// dla
        key <AB03> { [       c,    C,	U13D6           ] };		// te
        key <AB04> { [       v,    V,	U13D8           ] };		// ti
        key <AB05> { [       b,    B,	U13A7          ] };		// ka
        key <AB06> { [       n,    N,	U13DD           ] };
        key <AB07> { [       m,    M,	U13B9           ] };
        key <AB08> { [       comma,         less            ] };    
        key <AB09> { [      period,      greater                 ] };
        key <AB10> { [       slash,     question                 ] };
        key <BKSL> { [   backslash,          bar                 ] };
    
      key <LWIN> { [ ISO_Level3_Lock ] };     // Press LWIN to switch between US and Cherokee keyboard layouts.
    };
    .XCompose file.

    Code:
    # ~/.XCompose
    # This file defines custom Compose sequences for Unicode characters
    
    # Import default rules from the system Compose file:
    # include "/usr/share/X11/locale/en_US.UTF-8/Compose"
    
    # ga + ga = gv
    <U13A6> <U13A6> : U13AC
    
    <U13A6> <U13A0>	: U13A6
    <U13A6> <U13A1>	: U13A8 
    <U13A6> <U13A2>	: U13A9
    <U13A6> <U13A3>	: U13AA
    <U13A6> <U13A4>	: U13AB
    <U13A6> <U13A5>	: U13AC
    
    # gw  
    <U13C6> <U13C6>	: U13CA
    <U13C6> <U13A0>	: U13C6
    <U13C6> <U13A1>	: U13C7
    <U13C6> <U13A2>	: U13C8
    <U13C6> <U13A3>	: U13C9
    <U13C6> <U13A4>	: U13CA
    <U13C6> <U13A5>	: U13CB
    
    #In the Nahuatl language, if a syllable ends in uc it is pronounced almost like the kw in
    # Cherokee ulvkwdi.
    #w + k = kwi
    <U13E9> <U13A7>  : U13C8
    
    # ha + ha = hi
    <U13AD> <U13AD> : U13AF
    
    <U13AD> <U13A0>	: U13AD 
    <U13AD> <U13A1>	: U13AE
    <U13AD> <U13A2>	: U13AF
    <U13AD> <U13A3>	: U13B0
    <U13AD> <U13A4>	: U13B1
    <U13AD> <U13A5>	: U13B2
    
    # la + la = lv
    <U13B3> <U13B3>  : U13B8
    
    <U13B3> <U13A0>	: U13B3 
    <U13B3> <U13A1>	: U13B4
    <U13B3> <U13A2>	: U13B5
    <U13B3> <U13A3>	: U13B6
    <U13B3> <U13A4>	: U13B7
    <U13B3> <U13A5>	: U13B8
    
    # ma + ma = ma
    <U13B9> <U13B9> : U13B9
    
    <U13B9> <U13A0>	:U13B9 
    <U13B9> <U13A1>	: U13BA
    <U13B9> <U13A2>	: U13BB
    <U13B9> <U13A3>	: U13BC
    <U13B9> <U13A4>	: U13BD
    
    # na + ha = nah
    <U13BE> <U13AD> : U13C0
    # na + na = nv
    <U13BE> <U13BE> : U13C5
    # ha + na = hna
    <U13AD> <U13BE> : U13BF
    
    <U13BE> <U13A0>	: U13BE 
    <U13BE> <U13A1>	: U13C1
    <U13BE> <U13A2>	: U13C2
    <U13BE> <U13A3>	: U13C3
    <U13BE> <U13A4>	: U13C4
    <U13BE> <U13A5>	: U13C5
    
    # sa + sa = sv
    <U13CC> <U13CC> : U13D2
    #s + a, e, i, o, u, v
    <U13CC> <U13A0>	: U13CC
    <U13CC> <U13A1>	: U13CE
    <U13CC> <U13A2>	: U13CF
    <U13CC> <U13A3>	: U13D0
    <U13CC> <U13A4>	: U13D1
    <U13CC> <U13A5>	: U13D2
    
    # da + da = dv
    <U13D3> <U13D3> : U13DB
    #d + a, e, i, o, u, v
    <U13D3> <U13A0>	:U13D3 
    <U13D3> <U13A1>	: U13D5
    <U13D3> <U13A2>	: U13D7
    <U13D3> <U13A3>	: U13D9
    <U13D3> <U13A4>	: U13DA
    <U13D3> <U13A5>	: U13DB
    
    # tl
    <U13DD> <U13A0>	: U13DD
    <U13DD> <U13A1>	: U13DE
    <U13DD> <U13A2>	: U13DF
    <U13DD> <U13A3>	: U13E0
    <U13DD> <U13A4>	: U13E1
    <U13DD> <U13A5>	: U13E2
    <U13DD> <U13DD> : U13E2
    
    # tsa + tsa = tsv
    <U13E3> <U13E3> : U13E8
    #j + a, e, i, o, u, v
    <U13E3> <U13A0>	:U13E3 
    <U13E3> <U13A1>	: U13E4
    <U13E3> <U13A2>	: U13E5
    <U13E3> <U13A3>	: U13E6
    <U13E3> <U13A4>	: U13E7
    <U13E3> <U13A5>	: U13E8
    
    #wa + wa = wv
    <U13E9> <U13E9>  : U13EE
    #w + a, e, i, o, u, v
    <U13E9> <U13A0>	:U13E9 
    <U13E9> <U13A1>	: U13EA
    <U13E9> <U13A2>	: U13EB
    <U13E9> <U13A3>	: U13EC
    <U13E9> <U13A4>	: U13ED
    <U13E9> <U13A5>	: U13EE
    
    #ya + ya = yv
    <U13EF> <U13EF>  : U13F4
    
    <U13EF> <U13A0>	:U13EF 
    <U13EF> <U13A1>	: U13F0
    <U13EF> <U13A2>	: U13F1
    <U13EF> <U13A3>	: U13F2
    <U13EF> <U13A4>	: U13F3
    <U13EF> <U13A5>	: U13F4
    Posted 04-05-2011 at 01:18 AM by Mol_Bolom Mol_Bolom is offline
    Updated 04-05-2011 at 02:11 PM by Mol_Bolom
  2. Old Comment

    xkb, dead keys, multi keys, xmodmap, etc. Seeking guidance.

    Well, I've been going back and forth over xkb. From being excited about all the things I'm learning while doing so, to wishing I could write an AI program to make my computer alive just to blow its brains out, ha ha ha...

    Anyway, I've come up with an idea while reading through http://pascal.tsu.ru/en/xkb/ that I could create a types file which would use 16 levels, then I could use a Lock state to lock the keyboard at level3 to which then I could have two keyboard layouts all in one...

    That is to say, level1 to level2 would be the common US keyboard layout and level3 would be the Cherokee keyboard layout, levels 4 through 16 would be used only through mod keys so that d, g, h, j, l, m, n, q, s, t, w, y would be mod keys and the vowels a, e, i, o, u, v would have the levels 4 through 16.

    This is what I have so far, but it doesn't work yet...

    Code:
    default
    partial alphanumeric_keys modifier_keys 
    xkb_symbols "basic" {
        name[Group1]= "Cherokee-Modified";
    
        // Alphanumeric section
        key <AD03> {	[	  e,	E, <U13A1>, <U13A8>, <U13AE>, <U13B4>, <U13BA>, <U13C1>, <U13C7>, <U13CE>, <U13D5>, <U13D6>, <U13DE>, <U13E4>, <U13EA>, <U13F0>		]	};
        key <AD07> {	[	  u,	U, <U13A4>, <U13AB>, <U13B1>, <U13B7>, <U13BD>, <U13C4>, <U13CA>, <U13D1>, <U13DA>, <U13DA>, <U13E1>, <U13E7>, <U13ED>, <U13F3>		]	};
        key <AD08> {	[	  i,	I, <U13A2>, <U13A9>, <U13AF>, <U13B5>, <U13BB>, <U13C2>, <U13C8>, <U13CF>, <U13D7>, <U13D8>, <U13DF>, <U13E5>, <U13EB>, <U13F1>		]	};
        key <AD09> {	[	  o,	O, <U13A3>, <U13AA>, <U13B0>, <U13B6>, <U13BC>, <U13C3>, <U13C9>, <U13D0>, <U13D9>, <U13D9>, <U13E0>, <U13E6>, <U13EC>, <U13F2>		]	};
        key <AC01> {	[	  a,	A, <U13A0>, <U13A6>, <U13AD>, <U13B3>, <U13B9>, <U13BE>, <U13C6>, <U13CC>, <U13D3>, <U13D4>, <U13DD>, <U13E3>, <U13E9>, <U13EF> 		]	};
        key <AB04> {	[	  v,	V, <U13A5>, <U13AC>, <U13B2>, <U13B8>, <U13BD>, <U13C5>, <U13CB>, <U13D2>, <U13DB>, <U13DB>, <U13E2>, <U13E8>, <U13EE>, <U13F4>		]	};
        // End alphanumeric section
    };
    The types file is far far from functional, let alone, I still have to figure out exactly what needs to be defined and utilized, but eh...Still working on it...

    Code:
    partial default xkb_types "default" {
        type "SIXTEEN_LEVEL" {
            modifiers = Shift+Lock;
    	map[None] = Level1;
    	map[Shift] = Level2;
    	map[Shift+Lock] = Level3;
    	level_name[Level1] = "Base";
    	level_name[Level2] = "Shift";
    	level_name[Level3] = "ch_vowel";  
    	level_name[Level4] = "ch_g";  
    	level_name[Level5] = "ch_h";
    	level_name[Level6] = "ch_l";
    	level_name[Level7] = "ch_m";
    	level_name[Level8] = "ch_n";
    	level_name[9] = "ch_q";
    	level_name[10] = "ch_s";
    	level_name[11] = "ch_d";
    	level_name[12] = "ch_t";
    	level_name[13] = "ch_tl";
    	level_name[14] = "ch_j";
    	level_name[15] = "ch_w";
    	level_name[16] = "ch_y";
        };
    };

    Anyway, the thought goes like this...Press the windows key, which will lock the keyboard into level3...
    Press g, which changes to level 4. Then by pressing the a key, will return the Cherokee letter ga, or e to give the Cherokee letter ge, i (gi), o (go), etc, etc...

    Since the keyboard would be locked on level3, and since none of the consonants have a character above level3, therefore by pressing any of the consonants would activate the specified level for that consonant. At least in theory, considering some of the keyboard layouts I've made which allows the characters in levels 1 and 2 to be input when there are no other levels created for those keys.

    Also, the thought goes like this...With using dead keys by xim/uim sometimes a character will not be placed such as when I make a mistake and type s+c+e to get tse, where s is the accident. By using the other method, by pressing c would cancel out the s input therefore c+e would be the only keys input from the keyboard. Therefore the letter tse is given, instead of nothing which is very aggrivating.

    Anyway, I don't think it is possible, but I'll keep plugging away at it.

    This is how the keyboard would work...

    g switches to level4 (To return the Cherokee letters ga, ge, gi, go, gu, gv by pressing the keys a, e, i, o, u, v)
    h level5 (ha, he, hi, ho, hu, hv)
    l level6 (la, le, li, lo, lu, lv)
    m level7 (ma, me, mi, mo, mu)
    n level8 (na, ne, ni, no, nu, nv)
    q level9 (gwa, gwe, gwi, gwo, gwu, gwv)
    s level10 (sa, se, si, so, su, sv)
    d level11 (da, de, di, do, du, dv)
    t level12 (ta, te, ti, do, du, dv)
    p level13 (tla, tle, tli, tlo, tlu, tlv)
    j level14 (tsa, tse, tsi, tso, tsu, tsv)
    w level15 (wa, we, wi, wo, wu, wv)
    y level16 (ya, ye, yi, yo, yu, yv)

    Of course I might change these keys, but eh, I need to be able to make sure the darn thing will work first...Still a lot more to read...

    Well, will be interesting to see what might happen...Computer Blows Up...Eh, well, only one way to find out......
    Posted 04-05-2009 at 02:40 AM by Mol_Bolom Mol_Bolom is offline

  



All times are GMT -5. The time now is 06:31 AM.

Main Menu

My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
identi.ca: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration