Re: Alt + CHTN for arrow key movement, XKB?
Ahmad Baitalmal <[email protected]>
| Newsgroups | gmane.comp.xfree86.internationalization |
|---|---|
| Message-ID | <[email protected]> |
Ivan Pascal <pascal <at> info.tsu.ru> writes:
>
> Hi,
>
> Sorry for the delay. This task appeared more complex than I thought.
>
> ...
>
> Since it leads to the same level and the same Redirect action the combination
> Shift+Alt-C emulates the same <UP> key with Shift but without Alt.
>
Ok it worked :) this is amazing, I rarely have to move my hands off the
keyboard. Navigation everywhere is perfect.
BUT I still have a couple of problems.
- In Gnome (I'm running 2.6 on xfree-4.3.99.902-r2) hitting the "c" key by
itself is somehow interpreted as ALT+C. So when I'm filling a text box in a
dialog box, when I hit "c" the dialog box calls up the Cancel button since it
has "C" underlined. The same for "T" , "H", and "N". If there is a toolbar
accelerator for them, ther are called just by pressing the key. Not sure if
there is something I can do here.... could be a gnome issue?
- Holding down the ALT+C or one of the keys does not repeat, if I keep holding
it , it just produces one event. How do I make it repeat?
I'm attaching the two files I modified from my Gentoo notebook:
/etc/X11/xkb/types/basic
default xkb_types "basic" {
// Fairly standard definitions for
// the four required key types
virtual_modifiers NumLock, Alt;
type "ONE_LEVEL" {
modifiers = None;
map[None] = Level1;
level_name[Level1]= "Any";
};
type "TWO_LEVEL" {
modifiers = Shift;
map[Shift] = Level2;
level_name[Level1] = "Base";
level_name[Level2] = "Shift";
};
type "ALPHABETIC" {
modifiers = Shift+Lock;
map[Shift] = Level2;
map[Lock] = Level2;
level_name[Level1] = "Base";
level_name[Level2] = "Caps";
};
type "ALT_NAV" {
modifiers = Shift+Alt;
map[Shift] = level2;
map[Alt] = level3;
map[Alt+Shift] = level3;
level_name[Level1] = "Base";
level_name[Level2] = "Caps";
level_name[Level3] = "Arrows";
};
type "KEYPAD" {
modifiers = Shift+NumLock;
map[None] = Level1;
map[Shift] = Level2;
map[NumLock] = Level2;
map[Shift+NumLock] = Level1;
level_name[Level1] = "Base";
level_name[Level2] = "Number";
};
};
And the modified section in my dvorak file from
/etc/X11/xkb/symbols/pc/dvorak
key <AD07> {
type="ALT_NAV",
[ g, G, PageUp ],
actions[Group1]=[NoAction(), NoAction(), RedirectKey(key=<PGUP>,
clearmods=Alt)] };
key <AD08> {
type="ALT_NAV",
[ c, C, Up ],
actions[Group1]=[ NoAction(), NoAction(), RedirectKey(key=<UP>,
clearmods=Alt) ] };
key <AD09> { [ r, R ] };
key <AD10> { [ l, L ] };
key <AD11> { [ slash, question ] };
key <AD12> { [ equal, plus ] };
key <AC01> { [ a, A ] };
key <AC02> { [ o, O ] };
key <AC03> { [ e, E ] };
key <AC04> { [ u, U ] };
key <AC05> { [ i, I ] };
key <AC06> {
type="ALT_NAV",
[ d, D, Home ],
actions[Group1]=[NoAction(), NoAction(), RedirectKey(key=<HOME>,
clearmods=Alt)] };
key <AC07> {
type="ALT_NAV",
[ h, H, Left ],
actions[Group1]=[NoAction(), NoAction(), RedirectKey(key=<LEFT>,
clearmods=Alt)] };
key <AC08> {
type="ALT_NAV",
[ t, T, Down ],
actions[Group1]=[NoAction(), NoAction(), RedirectKey(key=<DOWN>,
clearmods=Alt)] };
key <AC09> {
type="ALT_NAV",
[ n, N, Right ],
actions[Group1]=[NoAction(), NoAction(), RedirectKey(key=<RGHT>,
clearmods=Alt)] };
key <AC10> {
type="ALT_NAV",
[ s, S, End ],
actions[Group1]=[NoAction(), NoAction(), RedirectKey(key=<END>,
clearmods=Alt)] };
key <AC11> { [ minus, underscore ] };
key <AB01> { [ semicolon, colon, dead_ogonek, dead_doubleacute ] };
key <AB02> { [ q, Q ] };
key <AB03> { [ j, J ] };
key <AB04> { [ k, K ] };
key <AB05> { [ x, X ] };
key <AB06> { [ b, B ] };
key <AB07> {
type="ALT_NAV",
[ m, M, PageDown ],
actions[Group1]=[NoAction(), NoAction(), RedirectKey(key=<PGDN>,
clearmods=Alt)] };
Thanks
Ahmad