Como Ignacio disse, isso não pode ser feito com mapas de teclado. Mas pode ser, e. simplesmente roteirizado usando xbindkeys e xdotool .
Primeiro, remova o Caps Caps Lock de sua funcionalidade especial usando o xmodmap (isso deve ser feito toda vez que o X for iniciado):
xmodmap -e 'keycode 66 = F13'
Em seguida, adicione as seguintes ligações a você .xbindkeysrc
:
"xdotool keyup Control_L; xdotool keydown Control_L"
F13
"xdotool keydown Control_L; xdotool keyup Control_L"
Control + F13
Isso cria uma pressão falsa (sem liberação) da tecla Ctrl sempre que o Caps Lock (agora F13) é pressionado. A sequência para cima + para baixo está lá por algumas razões técnicas de como os eventos falsos funcionam.
Nesta versão, pressionar (esquerda) Ctrl libera o bloqueio. Isso poderia ser modificado (tanto para que ambos os controles o liberassem, como também não), mas seria um pouco mais complicado (por exemplo, um poderia criar outra chave de controle (por exemplo, F14) e falso-pressione isso em vez de Control_L). >