9

I set up my keyboard layout in /usr/share/X11/xkb/symbols/ to use the keys H, J, K, L as arrows Left, Down, Up and Right as the third and fourth shift level. mostly I followed this post. The R. Alt is my Alternative Characters Key.

While this customization will "basically" work, I can not select text by typing it in conjunction with Shift. For example, I can not select the text by pressing Alt Gr+Shift+H, as it would do with Shift+Left. But I can jump a whole word with Ctrl.

The H, J, K, L are working exactly like the arrows in Firefox (with Shift and Ctrl) but not on Gedit, Rhythmbox or Chrome, and possibly more...

Any ideas? I'm using Ubuntu 14.04.


Edit:I am using a german keyboard with AltGr. and the files are the fowllowing:

link to keyboard layout

(hope the link works now)

Artur Meinild
  • 31,035
avila
  • 583
  • 2
  • 7
  • 21

1 Answers1

6

Go to xkb/types/iso9995 and edit the "THREE_LEVEL" type by adding

  preserve[Shift+LevelThree] = Shift;

so it looks like this

  partial default xkb_types "default" {

// A key type which can be used to implement
// an ISO9995-style level-three shift.

virtual_modifiers LevelThree;

type "THREE_LEVEL" {
    modifiers = Shift+LevelThree;
    map[None] = Level1;
    map[Shift] = Level2;
    map[LevelThree] = Level3;
    map[Shift+LevelThree] = Level3;
    preserve[Shift+LevelThree] = Shift;
    level_name[Level1] = "Base";
    level_name[Level2] = "Shift";
    level_name[Level3] = "Level3";
    };
};

Then go to your symbols file and use this format

    key <AC06>  { type="THREE_LEVEL", [               h,               H,            Left ]     }; 
    key <AC07>  { type="THREE_LEVEL", [               j,               J,            Down ]     }; 
    key <AC08>  { type="THREE_LEVEL", [               k,               K,              Up ]     }; 
    key <AC09>  { type="THREE_LEVEL", [               l,               L,           Right ]     }; 

This is a related question from which I could figure out the answer to yours.

Damaru
  • 147