'Hyper' symbol options behave inconsistently
This is a refiling of issue #343 (closed) to make it focused and incorporate @benno advice.
The standard pc symbols table maps the following:
key <HYPR> {[ NoSymbol, Hyper_L ]};
modifier_map Mod4 { <HYPR> };
which to my understanding means that HYPR key should be considered Mod4
The symbol options referring to Hyper_L behave inconsitently.
altwin:hyper_win maps Hyper_L and Hyper_R symbols to Mod4 modifier
// Hyper is mapped to the Super keys.
partial modifier_keys
xkb_symbols "hyper_win" {
key <LWIN> {[ Hyper_L ]};
key <RWIN> {[ Hyper_R ]};
modifier_map Mod4 { Hyper_L, Hyper_R };
};
capslock:hyper maps CAPS key (itself mapped to Hyper_L symbol) to Mod4 modifier
hidden partial modifier_keys
xkb_symbols "hyper" {
key <CAPS> { [ Hyper_L ] };
modifier_map Mod4 { <CAPS> };
};
ctrl:swapcaps_hyper maps LCTL key (itself mapped to Hyper_L symbol) to Mod3 modifier
// Swap the functions of the CapsLock key and the left Ctrl key,
// but make the Ctrl key a 'Hyper' modifier
partial modifier_keys
xkb_symbols "swapcaps_hyper" {
replace key <CAPS> { [ Control_L ] };
replace key <LCTL> { [ Hyper_L ] };
modifier_map Control { <CAPS> };
modifier_map Mod3 { <LCTL> };
};
For me, this is inconsistent and I think the last line of ctrl:swapcaps_hyper option above should read:
modifier_map Mod4 { <LCTL> };
~Artur