xmodmap replacement in 2020

revision b2577bc87df93722b6ad115f2b99ea74f06b6579

raw

README.rst

XKB seems the way to go


Manual mapping

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