Eu sei como usar o xmodmap para remapear a tecla Caps Lock, para que ela atue como uma tecla Control ou como uma tecla Escape. Gostaria de combinar os dois recursos da seguinte maneira:
Quando pressiono e solto a tecla Caps Lock, ela envia Escape. Quando pressiono Caps lock e pressiono outra tecla (digamos A), ela envia Control-A.
Existe alguma combinação de xkb, xmodmap e algo mais que poderia fazer o Caps lock se comportar dessa maneira no X?
Estou usando o Ubuntu Precise em um Macbook Air 3,1.
Eu tenho essa configuração no meu Mac e tentei encontrar um caminho para o Ubuntu sem sorte.
Bem, agora está funcionando. Obrigada por me apontar para o xcape . O que eu fiz é realmente simples e direto.
Em Preferências do sistema> Layout do teclado> Opções ...> Posição da tecla Ctrl, marquei 'Caps Lock as Ctrl'.
xcape -e 'Control_L = Escape'
Feito, o Caps Lock funciona como Ctrl quando usado como um modificador, e como Esc quando pressionado sozinho (há um pequeno atraso de algumas centenas de milissegundos, conforme observado no arquivo README do xcape, por isso ainda não é tão ideal quanto a solução Mac que usa KeyRemap4MacBook.)
fonte
gnome-tweak-tool
mapearCaps Lock
para,Ctrl
pois não háKeyboard layout
noSystem Settings
Ubuntu 14.04. Entãoxcape -e 'Control_L=Escape'
não funcionou, mas depois de usarxcape -d
Eu descobri queCaps Lock
gera código de acesso 66 e remapeada-lo respectivamente:xcape -e '#66=Escape'
.setxkbmap -option 'caps:ctrl_modifier'
xcape -e 'Caps_Lock=Escape'
setxkbmap -option 'caps:ctrl_modifier'
xcape -e 'Caps_Lock=Escape;Control_L=Escape;Control_R=Escape'
Também estou procurando por isso. Há uma semana, encontrei uma solução parcial usando
xmodmap
:Obviamente, isso não está funcionando perfeitamente; ele envia efetivamente Escape e Ctrl ao mesmo tempo quando pressiono CapsLock, mas fiquei feliz com isso por um tempo.
Finalmente encontrei este pequeno utilitário https://github.com/alols/xcape . Então agora eu posso simplesmente remapear o CapsLock para Ctrl e deixar o xcape fazer seu trabalho.
fonte
EDIT: Corrigido isso para a maioria dos gerenciadores de exibição inteligentes (mais recentes).
Pelos comentários de Louis e Sergiy, eu vim com esta solução que está funcionando para mim no Ubuntu 16.04 (Xenial) com LightDM e Unity.
Coloquei a seguinte linha de código no meu
.xprofile
arquivo no meu diretório pessoal.O trailing & coloca o comando xcape em segundo plano para que não bloqueie sua sessão. O setxkbmap faz sua alteração imediatamente.
Sergiy:
Louis:
fonte
Instalar
xcape
Adicione as duas linhas no seu
~/.bashrc
Observe a parte
-t 100
; se você não a definir, poderá notar um atraso no Esc se usar o vim.fonte
sudo apt-get install xcape
(typo)Criei uma ferramenta em C especialmente para esse fim, que supera muitos dos problemas da solução xcape / xmodmap :
fonte