This is an old revision of the document!


Super + Arrow as Home/End


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.