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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.