You are not logged in.

#1 2016-11-08 09:58:56

alexs321
Member
Registered: 2016-11-07
Posts: 1

Custom keyboard switching - separate shortcuts for each layout

I use 3 keyboard layouts regularly and want to have separate shortcut for activating each layout, as follows:

  • CapsLock - switches to the first layout

  • Shift + CapsLock - switches to the second layout

  • Ctrl + CapsLock - switches to the third layout

As I understand, to implement this I need to modify (or create my own) xkb definitions. So I have read wiki page about xkb configuration and also read some other articles. And then tried to apply this information and implement separate shortcuts for each keyboard layout.

I defined new type in the file $HOME/xkb/types/mytype with three levels in it as

partial xkb_types "three_groups" {
    type "THREE_GROUPS" {
        modifiers = Shift+Control;
        map[None] = Level1;
        map[Shift] = Level2;
        map[Control] = Level3;
        level_name[Level1] = "Base";
        level_name[Level2] = "Shift";
        level_name[Level3] = "Ctrl";
    };
};

Also I created action definition in the file $HOME/xkb/compat/mycompat

default partial xkb_compatibility "default"  {
   interpret ISO_Third_Group {
       action= LockGroup(group=3);
   };
};

This action will switch to third layout. From what I have read, switching to the first layout can be done with existing action ISO_First_Group and switching to the second layout can be done with existing action ISO_Last_Group.

And now it is necessary to define symbols, in other words relation between key or key combination and corresponding action(s). This should be placed in the file $HOME/symbols/mysymbol. Unfortunately here I stuck and can't understand how to connect keys/key combinations with actions. Can anyone help me with finishing this?

Offline

Board footer

Powered by FluxBB