Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
development:linux:settings_tweaks:super_arrow_as_home_end [2020/05/29 11:52]
kalenpw created
development:linux:settings_tweaks:super_arrow_as_home_end [2020/09/09 10:24] (current)
kalenpw
Line 1: Line 1:
 ====== Super + Arrow as Home/End ====== ====== Super + Arrow as Home/End ======
 +
 +===== TODO FIX THIS TO USE FN + ARROW METHOD =====
 +----
 +//%%https://unix.stackexchange.com/questions/65434/map-superleftright-to-home-end%%//
 +
 +The page http://madduck.net/docs/extending-xkb/ helped me to understand and find a way to do it.
 +
 +Create a file ~/.xkb/keymap/mykbd where you put the output of setxkbmap, it will be your base keyboard definition; eg:
 +
 +setxkbmap -print > ~/.xkb/keymap/mykbd
 +then we will create a ~/.xkb/types/mytypes file and put the following in:
 +
 +partial
 +xkb_types "super_level2" {
 +    Virtual_modifiers Super;
 +    type "SUPER_LEVEL2" {
 +        modifiers= Super;
 +        map[Super]= Level2;
 +        level_name[Level1]= "Base";
 +        level_name[Level2]= "Super";
 +    };
 +};
 +it defines a type SUPER_LEVEL2 that will allow to easily define symbols sent when a key is pressed with Super.
 +
 +then, in the ~/.xkb/symbols/mysymbols put the following lines:
 +
 +partial modifier_keys
 +xkb_symbols "super_arrows_home_end" {
 +    key <LEFT>  {
 +        type[Group1] = "SUPER_LEVEL2",
 +        symbols[Group1] = [    Left,   Home      ]
 +    };
 +    key <RGHT>  {
 +        type[Group1] = "SUPER_LEVEL2",
 +        symbols[Group1] = [    Right,  End       ]
 +    };
 +};
 +(note the use of the "SUPER_LEVEL2 type we defined, it means that the second (level 2) symbol on the symbols line is triggered when pressing Super key (instead of Shift key).
 +
 +Finally, edit the ~/.xkb/keymap/mykbd file to load the snippets we wrote:
 +
 +in the xkb_types line add +mytypes(super_level2) inside the quotes
 +in the xkb_symbols line add +mysymbols(super_arrows_home_end) in the quotes.
 +Now you can load it with
 +
 +xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY
 +Test your left/right keys, they should work as you wanted.
 +