xmodmap replacement in 2020

revision d527720b3af96c4ce21ad339bb3897386ebf894a

raw

README.rst

XKB seems the way to go


Manual mapping

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:

  1. save current keyboard layout into file:

    xkbcomp -xkb :0 original-layout.xkb
    
  2. copy file, apply the changes from my xkb file into it

  3. 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
raw

cweiske-kinesis.xkb

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 ]
    };
};
 

History