Por algum motivo, o Ubuntu atualmente atribui Super e Hyper ao Mod4. Você pode ver isso em / usr / share / X11 / xkb / symbols / pc:
key <SUPR> { [ NoSymbol, Super_L ] };
modifier_map Mod4 { <SUPR> };
key <HYPR> { [ NoSymbol, Hyper_L ] };
modifier_map Mod4 { <HYPR> };
Eu pude mudar isso para colocar super e hyper em modificadores separados sem precisar ser root ou modificar qualquer arquivo do sistema. Não tenho certeza se essa é a melhor maneira, já que definitivamente não sou um especialista em xkb, mas é uma maneira confiável para mim.
Primeiro, crie um arquivo de símbolos local. Eu tenho o meu em $ {HOME} /. Config / xkb / symbols / local. Isso atribui Super a Mod3 e Hyper a Mod4.
default partial modifier_keys
xkb_symbols "superhyper" {
modifier_map Mod3 { Super_L, Super_R };
key <SUPR> { [ NoSymbol, Super_L ] };
modifier_map Mod3 { <SUPR> };
key <HYPR> { [ NoSymbol, Hyper_L ] };
modifier_map Mod4 { <HYPR> };
};
Em seguida, recompile o mapa existente para adicionar um "local":
setxkbmap -print | sed -e '/xkb_symbols/s/"[[:space:]]/+local&/' | xkbcomp -I${HOME}/.config/xkb - ${DISPLAY}
Coloque isso em um script para ser executado quando você efetuar login. Você pode executá-lo como um usuário comum.