summaryrefslogtreecommitdiff
path: root/types/extra
blob: 544f85329f2594fd96cd920a3e786fa8fa3789ea (plain)
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
// $XFree86: xc/programs/xkbcomp/types/extra,v 1.3 2002/11/26 02:14:02 dawes Exp $

partial default xkb_types "default" {
    // Definition for a key type used for the czech keymap, for instance.
    // Defines style a with four level shift. It is similar to three_level
    // type used for iso9995 but it lets the shift key behave "normally".

    virtual_modifiers LevelThree;

    type "FOUR_LEVEL" {
        modifiers = Shift+LevelThree;
	map[None] = Level1;
	map[Shift] = Level2;
	map[LevelThree] = Level3;
	map[Shift+LevelThree] = Level4;
	level_name[Level1] = "Base";
	level_name[Level2] = "Shift";
	level_name[Level3] = "Alt Base";  
	level_name[Level4] = "Shift Alt";  
    };

    type "FOUR_LEVEL_ALPHABETIC" {
	modifiers = Shift+Lock+LevelThree;
	map[None] = Level1;
	map[Shift] = Level2;
	map[Lock]  = Level2;
	map[LevelThree] = Level3;
	map[Shift+LevelThree] = Level4;
	map[Lock+LevelThree] =  Level4;
	map[Lock+Shift+LevelThree] =  Level3;
	level_name[Level1] = "Base";
	level_name[Level2] = "Shift";
	level_name[Level3] = "Alt Base";
	level_name[Level4] = "Shift Alt";
    };

    type "FOUR_LEVEL_SEMIALPHABETIC" {
	modifiers = Shift+Lock+LevelThree;
	map[None] = Level1;
	map[Shift] = Level2;
	map[Lock]  = Level2;
	map[LevelThree] = Level3;
	map[Shift+LevelThree] = Level4;
	map[Lock+LevelThree] =  Level3;
        map[Lock+Shift+LevelThree] = Level4;
	preserve[Lock+LevelThree] = Lock;
	preserve[Lock+Shift+LevelThree] = Lock;
	level_name[Level1] = "Base";
	level_name[Level2] = "Shift";
	level_name[Level3] = "Alt Base";
	level_name[Level4] = "Shift Alt";
    };

// Special type for keys used in Serbian Latin Unicode map
// It makes it possible to use all three forms of latin letters 
// present in Unicode that are made up of two separate letters 
// (forms like LJ, Lj, and lj; NJ, Nj, and nj; etc)

    type "SEPARATE_CAPS_AND_SHIFT_ALPHABETIC" {
        modifiers = Shift+Lock+LevelThree;
        map[None] = Level1;
        map[Shift] = Level2;
        map[Lock] = Level4;
        map[LevelThree] = Level3;
        map[Shift+LevelThree] = Level4;
        map[Lock+LevelThree] =  Level3;
        map[Lock+Shift+LevelThree] = Level3;
        preserve[Lock]= Lock;
        preserve[Lock+LevelThree]= Lock;
        level_name[Level1] = "Base";
        level_name[Level2] = "Shift";
        level_name[Level3] = "AltGr Base";
        level_name[Level4] = "Shift AltGr";
    };
};

// This enables the four level shifting also for the keypad.
partial xkb_types "keypad" {
    virtual_modifiers LevelThree;

    type "FOUR_LEVEL_KEYPAD" {
	modifiers = Shift+NumLock+LevelThree;
	map[None] = Level1;
	map[Shift] = Level2;
	map[NumLock] = Level2;
	map[Shift+NumLock] = Level1;
	map[LevelThree] = Level3;
	map[Shift+LevelThree] = Level4;
	map[NumLock+LevelThree] = Level4;
	map[Shift+NumLock+LevelThree] = Level3;
	level_name[Level1] = "Base";
	level_name[Level2] = "Number";
	level_name[Level3] = "Alt Base";
	level_name[Level4] = "Alt Number";
    };       
};

// This enables the four level shifting also for the keypad,
// but levels 1 and 2, and 3 and 4 are swapped on Mac keypads.
partial xkb_types "mac_keypad" {
    virtual_modifiers LevelThree;

    type "FOUR_LEVEL_KEYPAD" {
	modifiers = Shift+NumLock+LevelThree;
	map[None] = Level2;
	map[Shift] = Level1;
	map[NumLock] = Level1;
	map[Shift+NumLock] = Level2;
	map[LevelThree] = Level4;
	map[Shift+LevelThree] = Level3;
	map[NumLock+LevelThree] = Level3;
	map[Shift+NumLock+LevelThree] = Level4;
	level_name[Level2] = "Base";
	level_name[Level1] = "Number";
	level_name[Level4] = "Alt Base";
	level_name[Level3] = "Alt Number";
    };       
};