Como criar atalhos de teclado como o macOS no Ubuntu?


12

Eu já vi muitas perguntas sobre isso, mas todas parecem fazer um remapeamento das chaves, em vez de um comportamento real do macOS.

Meu principal caso de uso seria "dividir" os atalhos: por exemplo, eu gostaria de ter Super+ Cpara copiar texto e Ctrl+ Cpara enviar um SIGINT ao programa atual.

Nesse caso, um simples remapeamento ou troca de Supere Ctrlnão funcionaria.

Considero o comportamento do Mac muito prático, porque todos os atalhos mais comuns são utilizados Super, e o famoso atalho de cópia não se sobrepõe ao famoso atalho SIGINT .

A maioria dos aplicativos de terminal reage a Ctrl- * atalhos, e eles se sobrepõem principalmente aos atalhos "padrão". No Terminal GNOME, precisamos pressionar Ctrl+ Shift+ Cpara copiar o texto, enquanto em outros aplicativos como o Firefox, Ctrl+ Cé usado. Isso é bastante complicado e inconsistente em comparação com o Super+ C.


Gostaria de apontar para outra resposta no askubuntu: askubuntu.com/questions/521202/…
Gautam

Respostas:


0

Você pode conseguir usando os comandos xmodmap:

remove mod4 = Super_L
keysym Super_L = Control_L
add Control = Control_L

Salve as linhas acima como super_as_ctrl.xmodmap. Teste executando

xmodmap super_as_ctrl.xmodmap

Para tornar a alteração permanente (reinserção / reinicialização sobrevivente), apenas renomeie o arquivo para .Xmodmapsua pasta pessoal.

(Testado no Ubuntu 14.x)

PS: Você também pode usar outro botão do Windows. Não tenho certeza de como fazer isso.


Isso faz com que Ctrl-C e Super-C enviem ^Cpara o shell. Eu esperava que um deles se comportasse como cópia. Testado no sistema operacional elementar
Benoit Duffez 08/09

0

Para criar um novo atalho e excluir os antigos, basta acessar as configurações do sistema >> teclado >> atalhos . Lá você pode ver todos os atalhos, editá-lo, excluí-lo e criar novos.


0

O seguinte vive na minha $HOME/.uxSwapCapsLock-and-Ctrl. Ele efetivamente troca a funcionalidade das teclas CapsLock e Ctrl para qualquer shell em uso em qualquer sistema Linux sempre que eu efetuar login e iniciar uma sessão interativa dentro de um shell em um determinado sistema. Tenho certeza de que você pode aprender sobre o nome da chave pertinente que você está tentando modificar e é referido pelo xmodmap, a fim de obter a funcionalidade desejada. Esse código é iniciado toda vez que eu faço login e tenho uma sessão interativa via .profile, mas ele vive em um arquivo .ps1 para esse fim.

#!bin/bash
xmodmap -e "remove Lock = Caps_Lock"
xmodmap -e "remove Control = Control_L"
xmodmap -e "keysym Control_L = Caps_Lock"
xmodmap -e "keysym Caps_Lock = Control_L"
xmodmap -e "add Lock = Caps_Lock"
xmodmap -e "add Control = Control_L"
#End script

Esta é a verificação .profile para fazer a troca:

if [ -f  "$HOME/.uxSwapCapsLock-and-Ctrl" ]; then
   .  $HOME/.uxSwapCapsLock-and-Ctrl
fi
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.