-
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...
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: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 };
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 03:40 AM by Mol_Bolom



