XKB seems the way to go
Replacement for xmodmap-based mapping of my Kinesis Ergo (see http://p.cweiske.de/154)
I had to switch to PC mode (pgrm+F6)
Helpful were:
Howto add some german keys like äöüÄÖÜ߀ in the US keyboard layout:
save current keyboard layout into file:
xkbcomp -xkb :0 original-layout.xkb
copy file, apply the changes from my xkb file into it
load:
xkbcomp ~/.config/xkb-keyboard/cweiske-kinesis-full.xkb $DISPLAY
Key tester:
evtest (root) kinesis listed 3 times; 2nd is keyboard:
/dev/input/event21: Kinesis Advantage2 Keyboard /dev/input/event22: Kinesis Advantage2 Keyboard /dev/input/event23: Kinesis Advantage2 Keyboard
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | partial xkb_types "complete" { type "FOUR_LEVEL_RALT" { modifiers= Shift+LevelThree; map[Shift]= Level2; map[LevelThree]= Level3; map[Shift+LevelThree]= Level4; level_name[Level1]= "Base"; level_name[Level2]= "Shift"; level_name[Level3]= "Level3"; level_name[Level4]= "Shift Level3"; }; }; partial xkb_symbols "pc+de(nodeadkeys)+us:2+de:3+inet(evdev)" { include "pc+de(nodeadkeys)+us:2+de:3+inet(evdev)" key <AC01> { type[group1]= "FOUR_LEVEL_ALPHABETIC", type[group2]= "FOUR_LEVEL_RALT", type[group3]= "FOUR_LEVEL_ALPHABETIC", symbols[Group1]= [ a, A, ae, AE ], symbols[Group2]= [ a, A, adiaeresis, Adiaeresis ], symbols[Group3]= [ a, A, ae, AE ] }; key <AC02> { type[group1]= "FOUR_LEVEL_SEMIALPHABETIC", type[group2]= "FOUR_LEVEL_RALT", type[group3]= "FOUR_LEVEL_SEMIALPHABETIC", symbols[Group1]= [ s, S, U017F, U1E9E ], symbols[Group2]= [ s, S, ssharp, ssharp ], symbols[Group3]= [ s, S, U017F, U1E9E ] }; key <AD03> { type[group1]= "FOUR_LEVEL_SEMIALPHABETIC", type[group2]= "FOUR_LEVEL_RALT", type[group3]= "FOUR_LEVEL_SEMIALPHABETIC", symbols[Group1]= [ e, E, EuroSign, EuroSign ], symbols[Group2]= [ e, E, EuroSign, EuroSign ], symbols[Group3]= [ e, E, EuroSign, EuroSign ] }; key <AD07> { type[group1]= "FOUR_LEVEL_SEMIALPHABETIC", type[group2]= "FOUR_LEVEL_RALT", type[group3]= "FOUR_LEVEL_SEMIALPHABETIC", symbols[Group1]= [ u, U, downarrow, uparrow ], symbols[Group2]= [ u, U, udiaeresis, Udiaeresis ], symbols[Group3]= [ u, U, downarrow, uparrow ] }; key <AD09> { type[group1]= "FOUR_LEVEL_ALPHABETIC", type[group2]= "FOUR_LEVEL_RALT", type[group3]= "FOUR_LEVEL_ALPHABETIC", symbols[Group1]= [ o, O, oslash, Oslash ], symbols[Group2]= [ o, O, odiaeresis, Odiaeresis ], symbols[Group3]= [ o, O, oslash, Oslash ] }; }; |