Imitando teclas de comando / alt / control no estilo Mac no Linux

12

Eu absolutamente amo que o Mac separa a tecla de comando da tecla de controle, permitindo que os atalhos do SO e os atalhos de texto coexistam. É incrivelmente útil, especialmente porque permite atalhos do emacs em qualquer lugar .

Procurei em quase toda parte por algum tipo de utilitário que permita isso e não encontra nada. Qualquer ajuda?

Nota: Quero fazer mais do que apenas remapear meu teclado. Na verdade, quero dividir os atalhos do SO e os de texto. A única maneira de ver isso é passar manualmente por cada atalho no Gnome e Compiz e alterá-lo.

Kenrick Rilee
fonte

Respostas:

1

Eu não tentei isso sozinho, mas encontrei isso em "Ask Ubuntu":

Instale a AutoKey:

apt-get install autokey-gtk

e defina uma frase para:

Phrase Text: <ctrl>+C (actually type out the <ctrl>+ here)
Paste Using: Keyboard
Abbreviation: None
Hotkey: <super>+v
Window Filter: None

Veja aqui: Como fazer o teclado funcionar como o OSX System Wide?

Teórico
fonte
0

Atualização 02/03/2020

O Kinto foi reescrito em C para sistemas Ubuntu / Debian usando o x11. Ele também usa arquivos de configuração json, facilitando o gerenciamento e a extensão a outros aplicativos, além de terminais. O aplicativo não é mais mapeado para Super nos aplicativos de Terminal, agora será mapeado corretamente para Ctrl + Shift para criar exatamente a mesma sensação de ter uma tecla Cmd.

Confira a versão mais recente. https://github.com/rbreaves/kinto

A principal alteração para permitir a alteração Super = Ctrl + Shift está neste arquivo de símbolos.

default partial xkb_symbols "mac_levelssym" {
    key <LWIN> {
      repeat= no,
      type= "ONE_LEVEL",
      symbols[Group1]= [ Hyper_L ],
      actions[group1]=[ SetMods(modifiers=Shift+Control) ]
    };
    key <RWIN> {
      repeat= no,
      type= "ONE_LEVEL",
      symbols[Group1]= [ Hyper_R ],
      actions[group1]=[ SetMods(modifiers=Shift+Control) ]
    };
};

Você pode achar que o Kinto é útil. É um projeto que criei recentemente, depois de alguns anos resolvendo esse problema de várias maneiras diferentes e agora sinto que ele é sólido o suficiente para compartilhar.

O instalador do Kinto simplesmente usa python para fazer a instalação inicial, depois disso é apenas um serviço systemd, bash, xprop, setxkbmap e xkbcomp. No que me diz respeito, é a solução mais rápida e nativa para esse problema que você encontrará.

https://github.com/rbreaves/kinto

https://medium.com/@benreaves/kinto-a-mac-inspired-keyboard-mapping-for-linux-58f731817c0

Aqui também está um Gist, se você quiser apenas ver o que está no centro de tudo, ele não alternará seu mapa de teclas quando necessário. O Gist também não inclui arquivos de mapa de teclas xkb personalizados que configuram cursores no estilo macOS / manipulações de palavras que usam Cmd e as teclas de seta.

https://gist.github.com/rbreaves/f4cf8a991eaeea893999964f5e83eebb

conteúdo essencial

# permanent apple keyboard keyswap
echo "options hid_apple swap_opt_cmd=1" | sudo tee -a /etc/modprobe.d/hid_apple.conf
update-initramfs -u -k all

# Temporary & instant apple keyboard keyswap
echo '1' | sudo tee -a /sys/module/hid_apple/parameters/swap_opt_cmd

# Windows and Mac keyboards - GUI (Physical Alt is Ctrl, Physical Super is Alt, Physical Ctrl is Super)
setxkbmap -option;setxkbmap -option altwin:ctrl_alt_win

# Windows and Mac keyboards - Terminal Apps (Physical Alt is Super, Physical Super is Alt, Physical Ctrl is Ctrl)
setxkbmap -option;setxkbmap -option altwin:swap_alt_win

#
# If you want a systemd service and bash script to help toggle between
# GUI and Terminal applications then look at project Kinto.
# https://github.com/rbreaves/kinto
#
# Note: The above may not work for Chromebooks running Linux, please look
# at project Kinto for that.
#
# If anyone would like to contribute to the project then please do!
#
R Ben R
fonte
Não publique a mesma resposta em várias perguntas. Se a mesma informação realmente responder a ambas as perguntas, uma pergunta (geralmente a mais recente) deve ser fechada como duplicata da outra. Você pode indicar isso votando para fechá-lo como duplicado ou, se você não tiver reputação suficiente para isso, levante uma bandeira para indicar que é uma duplicata. Caso contrário, adapte sua resposta a essa pergunta e não cole a mesma em vários lugares.
DavidPostill
1
Se eu pensasse que poderia ter acrescentado algo substancial à pergunta feita adaptando a resposta, então o teria feito. No geral, essa é uma pergunta bastante comum e todos compartilham a mesma resposta. De qualquer maneira, eu não estava ciente da política de sinalizar ou fechar perguntas duplicadas. Vou manter isso em mente para o futuro.
R R Ben