/usr/share/X11/xkb/types/extra is in xkb-data 2.23.1-1ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 | partial default xkb_types "default" {
// Defines a type with a four-level shift, similar to the 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";
};
// A four-level keypad variant. The first two levels are controlled by
// NumLock (with active shifting like in KEYPAD). LevelThree overrides
// this mode, with two additional shifted levels.
type "FOUR_LEVEL_MIXED_KEYPAD" {
modifiers = Shift+NumLock+LevelThree;
map[None] = Level1;
map[Shift+NumLock] = Level1;
map[NumLock] = Level2;
map[Shift] = Level2;
map[LevelThree] = Level3;
map[NumLock+LevelThree] = Level3;
map[Shift+LevelThree] = Level4;
map[Shift+NumLock+LevelThree] = Level4;
level_name[Level1] = "Base";
level_name[Level2] = "Number";
level_name[Level3] = "Alt Base";
level_name[Level4] = "Shift Alt";
};
// Base level, two shifted LevelThree levels, one Ctrl+Alt command level.
type "FOUR_LEVEL_X" {
modifiers = Shift+LevelThree+Control+Alt;
map[None] = Level1;
map[LevelThree] = Level2;
map[Shift+LevelThree] = Level3;
map[Control+Alt] = Level4;
level_name[Level1] = "Base";
level_name[Level2] = "Alt Base";
level_name[Level3] = "Shift Alt";
level_name[Level4] = "Ctrl+Alt";
};
// A special type for keys used in the Serbian Latin Unicode keymap.
// 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; etcetera).
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";
};
// A key type for the German ssharp (for example), which is capitalized as SS.
// CHARACTERISTICS:
// It is FOUR_LEVEL with the exception that the fifth level is mapped to the
// Lock modifier. If other modifiers are used, the Lock state is ignored.
// DETAILS ABOUT GERMAN:
// The capital form of ssharp (called sharp s) only exists for completely
// capitalized text, not for words at the beginning of sentences nor for
// nouns (nouns in German normally start with a captial letter).
// The ssharp key, to the right of the zero key, takes this into account
// and has a questionmark mapped to Shift-ssharp since normally no capital
// version is needed.
// When typing with active CapsLock, this key type is needed to
// output two capital letters S because this is the only German key
// whose capital letter is not the same as the one typed with Shift.
type "FOUR_LEVEL_PLUS_LOCK" {
modifiers = Shift+Lock+LevelThree;
map[None] = Level1;
map[Shift] = Level2;
map[LevelThree] = Level3;
map[Shift+LevelThree] = Level4;
map[Lock] = Level5;
map[Lock+Shift] = Level2;
map[Lock+LevelThree] = Level3;
map[Lock+Shift+LevelThree] = Level4;
level_name[Level1] = "Base";
level_name[Level2] = "Shift";
level_name[Level3] = "Alt Base";
level_name[Level4] = "Shift Alt";
level_name[Level5] = "Lock";
};
};
// 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";
};
};
|