test.xkb
xkb_keymap{
xkb_keycodes{ include "evdev+aliases(qwerty)" };
xkb_types{ include "complete" };
xkb_compat{ include "complete" };
xkb_symbols{ include "pc+us(dvorak)+inet(evdev)+terminate(ctrl_alt_bksp)" };
xkb_geometry{ include "pc(pc105)" };
};
default partial alphanumeric_keys modifier_keys
xkb_symbols "basic" {
include "us(basic)"
include "/usr/share/X11/xkb/symbols/it"
include "B(S1)|B(S2)"
include "%S/de(basic)"
override "B(S1)|B(S2)"
name[Group1] = "Banana (US)";
key <AE01> { [ exclam, 1] };
key <AE12> { [ plus, equal] };
key <A> { [Greek_alpha, Greek_ALPHA, ae, AE] };
key <AD05> { [t, T, tslash, Tslash] }; // Type: FOUR_LEVEL_ALPHABETIC
key <AD01> { [], [], [ q, Q ] };
key <AD05> { [ b, B, U1F966 ]};
key <> { [NoSymbol, a, b, {a, b}] };
key <LALT> { virtualModifier = Alt }; // Alt is bound to <LALT>
key <LALT> {
symbols[Group1]=[Alt_L],
actions[Group1]=[SetMods(modifiers=modMapMods)]
repeat = False,
[ Alt_L ]
};
key <AD01> {
type[Group1] = "TWO_LEVEL", // Type
[q, Q] // Symbols
};
key <LCTL> {
symbols[1] = [ Control_L ],
actions[1] = [ { SetMods(modifiers=Control), SetGroup(group=+1) } ]
};
overridekey <AC11> {[ agrave, adiaeresis, braceleft ]};
replacekey <PRSC> {[ Super_R, Super_R ]};
modifier_map Mod4 { <PRSC>, <RWIN> };
modifier_map Mod1 { <LALT>,<RALT> };
};
// Mandatory to extend the
! include%S/evdev
! option = symbols
custom:foo = +custom(bar)
custom:baz = +other(baz)
// Explicit default section with no name required
partial alphanumeric_keys
xkb_symbols{ include "us(basic)" };
xkb_keycodes "jp106" {
include "sgi_vndr/indigo(pc101)"
<VOL-> = 122;
<HZTG> = 22;
alias <AE13> = <BKSL>;
augment "sgi_vndr/indy(pc101)"
alternate<BKSL> = 100;
minimum = 8;
maximum = 255;
};
xkb_types{
// ...
type "TWO_LEVEL_PLUS_CONTROL" {
modifiers = Shift + Control;
map[None] = Level1;
map[Shift] = Level2;
map[Control] = Level3;
map[Control+Shift] = Level4;
// Using preserve will make Control not consumed and allow
// applications to detect keyboard shortcuts with alternative
// keysyms in levels 3 and 4 rather than the levels 1 and 2.
preserve[Control] = Control;
preserve[Control+Shift] = Control;
preserve[Shift+Lock+LevelThree] = Lock;
level_name[Level1] = "Base";
level_name[Level2] = "Shift";
level_name[Level3] = "Tweaked Control";
level_name[Level4] = "Tweaked Control + Shift";
};
};
default partial xkb_compatibility "basic" {
interpret AccessX_Enable {
action = LockControls(controls=AccessXKeys);
};
};
default xkb_compatibility "basic" {
virtual_modifiers NumLock;
interpret.repeat = False;
setMods.clearLocks = True;
latchMods.clearLocks = True;
interpret Shift_Lock+AnyOf(Shift+Lock) {
action = LockMods(modifiers=Shift);
};
interpret Num_Lock+Any {
virtualModifier = NumLock;
action = LockMods(modifiers=NumLock);
};
interpret Mode_switch {
action = SetGroup(group=+1);
};
interpret Any + Any {
action = SetMods(modifiers=modMapMods);
};
group 2 = Mod5;
indicator "Shift Lock" {
!allowExplicit;
whichModState = Locked;
modifiers = Shift;
};
};