Como remapear meus atalhos de teclado do Ubuntu para corresponder ao OSX?

28

Estou usando o Ubuntu no VirtualBox no Mac. Como troco com frequência, gostaria de usar os mesmos atalhos. Por favor, alguém sabe como ter os mesmos atalhos no Ubuntu, como no Mac? Especificamente, eu gostaria de copiar, colar, selecionar tudo, ... trabalhar com Cmd + C, Cmd + V, Cmd + A, ... (mesmo no terminal - sem Ctrl + Shift, apenas Ctrl).

Tentei mudar o layout do teclado para o laptop da Apple, mas isso não ajudou.

user209499
fonte
A tecla Cmd é a alternativa para Ctrl ou Alt?
Seth
Se bem me lembro, Cmd é igual a ctrl.
Kaz Wolfe
2
cmd é igual à tecla de função do Windows (enquanto a tecla cmd fica ao lado da barra de espaço). Na maioria das vezes entre ctrl e alt.
velop

Respostas:

8

você não pode adicionar atalhos personalizados? Se isso não foi possível ou não funcionou, convém alterar as combinações de teclas da sua vmbox. Você precisará fazer o seguinte:

Instalar xbindkeys

sudo apt-get install xbindkeys

Xbindkeys é um programa muito versátil que permite remapear as chaves com muita facilidade. Ele usa um arquivo de configuração, meu padrão localizado em seu diretório pessoal, para alterar as combinações de teclas em determinados comandos.

Para criar um arquivo de configuração padrão, use o comando:

xbindkeys --defaults

O que imprime o arquivo de configuração padrão. Portanto, se você deseja criar o arquivo que contém os valores padrão, você usaria:

xbindkeys --defaults > $HOME/.xbindkeysrc

Que imprime os valores padrão em um arquivo oculto chamado .xbindkeysrc localizado em casa.

Agora, para realmente alterar as ligações das chaves, primeiro precisamos saber qual é o nome ou o código das chaves. O xbindkeys nos permite usar o identificador -k para encontrar o nome de uma tecla ou combinação de teclas. Corre:

xbindkeys -k

Agora pressione ctrl (de cmd) e verifique a saída

Tente pressionar ctrl + c (depois de desativar esse atalho no terminal usando a segunda parte desta explicação)

Ele informará o nome da combinação de teclas / teclas.

Agora precisamos dizer ao linux para chamar o cmd quando ctrl for pressionado.

para isso, precisaremos de um software extra, pois o xbindkeys não suporta isso por si só. Conheço dois programas que podemos usar, xdotool e xte. Eu prefiro xte, então eu vou usar isso.

Instale-o:

sudo apt-get install xautomation

(Para chamar uma única tecla, pressione: xte 'key keyName'

Para chamar uma combinação de teclas: xte 'keydown keyName' 'keydown secondKeyName' 'keyup keyName' 'keyup secondKeyName

Para mais informações, você pode ler o manual man xte )

Permite abrir o arquivo de configuração que você criou anteriormente: (aquele que você criou usando xbindkeys --defaults > $HOME/.xbindkeysrc)

gedit .xbindkeysrc

Você obterá algo como isto:

#
# A list of keys is in /usr/include/X11/keysym.h and in
# /usr/include/X11/keysymdef.h
# The XK_ is not needed.
#
# List of modifier:
#   Release, Control, Shift, Mod1 (Alt), Mod2 (NumLock),
#   Mod3 (CapsLock), Mod4, Mod5 (Scroll). 
#

# The release modifier is not a standard X modifier, but you can  
# use it if you want to catch release events instead of press events

# By defaults, xbindkeys does not pay attention with the modifiers
# NumLock, CapsLock and ScrollLock.
# Uncomment the lines above if you want to pay attention to them.

#keystate_numlock = enable
#keystate_capslock = enable
#keystate_scrolllock= enable

# Examples of commands:

Anteriormente, você extraiu a combinação chave / chave. agora que você conhece o comando para simular o pressionamento de teclas, é possível chamá-lo no seu script xbindkeys, assim:

"xte 'ctrl'" Cmd (ou algo assim depende do nome que o xbindkeys lhe deu)

Adicione isso ao seu script xbindkeys e salve-o.

Você notará que ainda não funciona. Isso ocorre porque o xbindkeys ainda não está sendo executado. inicie-o com o seguinte comando.

xbindkeys

Seus comandos devem funcionar agora. Se não funcionar, tente adicionar comandos às combinações de teclas, como copiar e colar. Se isso não funcionar, existe uma alternativa, mas isso é bastante escrito. Você também pode tentar xmodmap ou xkeycaps.

Gostaria de observar que xbindkeys e xte nem sempre funcionam bem juntos.

Quanto aos atalhos do terminal: você pode alterá-los TODOS abrindo o terminal e clicando em editar na barra superior. Em seguida, clique em atalhos do teclado e altere o valor de copiar e colar no cabeçalho "editar" em ctrl (ou no seu caso cmd) + ce ectrl + v

Akisame
fonte
2
estas são soluções para corrigir seu problema DENTRO da vmbox. Você pode ser capaz de trocar certas keyscodes através da criação de uma mesa de câmbio senha em seu vmbox mas eu não tenho nenhuma experiência com vmboxes
Akisame
Isso é o mais próximo que eu consegui de obter ligações do Mac no Linux. No entanto, parece xte 'key Home'que não funciona quando vinculado a qualquer pressionamento de tecla no arquivo .xbindkeysrc. Eu tentei uma variedade como "Shift + i". Eu também vi o trabalho executando `sleep 15 && xte 'key Home'" (alternando para o gedit e vendo o trabalho em casa). O máximo de feedback que recebo quando configuro o "Alt + Left" para casa é um flash Qualquer ajuda sobre isso? gist.github.com/Kikketer/658d89661a044121279afbba04a511fa
Chris
8

Não é necessário usar xbindkeyspara obter mapeamento de teclado semelhante ao OSX no Ubuntu. Esta é uma opção embutida:

  1. Vá para as configurações do Ubuntu
  2. Navegue para TecladoConfigurações de layout do teclado
  3. adicionar inglês (Macintosh)
boulder_ruby
fonte
7
Não vejo Keyboard Layout Settingsno Ubuntu 14.0.4
chovy
Isso não funciona no VirtualBox. Tudo o que recebi foi uma janela reduzida quando tentei copiar / colar.
chovy
lol, depois de tanto tempo tentando todas as outras soluções existentes, essa é tão fácil e funcionou imediatamente. (Ubuntu 14.04.3 LTS 64 bits no VirtualBox 5.0.4). Obrigado
Allisone
Isso não funciona para mim, no virtualbox.
Peter Brooks
3
Essa resposta claramente não funciona mais para versões mais recentes do Ubuntu. Qualquer que fosse a versão mais recente do Ubuntu em 2014, funcionou para isso.
precisa saber é o seguinte
3

Esta é uma resposta atualizada para qualquer pessoa que esteja enfrentando problemas com as versões mais recentes do Ubuntu.

Acabei de instalar o Ubuntu 16.04.1 através do VirtualBox e não consegui obter as configurações do teclado correspondentes ao meu MacBook.

Aqui está o que eu fiz para corrigi-lo:

  1. Navegue para Configurações do sistema .
  2. Selecione Entrada de texto (ou seja, não teclado ).
  3. Abaixo da lista com o cabeçalho Fontes de entrada a serem usadas: há um sinal de mais e um sinal de menos - clique no sinal de mais.
  4. Na caixa de texto em Escolha um tipo de fonte de entrada no layout do teclado que você precisa (no meu caso, eu escolho inglês (Reino Unido, macintosh).
  5. Use a seta para cima para torná-lo seu layout de teclado padrão no Ubuntu.
  6. Remova os outros layouts de teclado. Não foi até eu remover os outros layouts que as alterações entraram em vigor.
David Brower
fonte
1
Qual é o efeito disso? Por exemplo, a tecla de controle em um Macintosh está no mesmo local que em um teclado normal. Como o ctrl-c / v continua sendo o comando padrão de copiar e colar do sistema, isso não responde à pergunta original de remapear esses tipos de atalhos em todo o sistema, para simular um Mac.
Coljac
2

Estou no Ubuntu 16.04, VirtualBox 5.1.22 e nenhuma dessas respostas funcionou para mim - incluindo as de David Brower, infelizmente.

Aqui está o que fez para que minha chave de comando OSX esquerda funcionasse (persistentemente!):

  1. Primeiro, você precisa garantir que o VirtualBox não esteja usando a Esquerda ⌘ como a chave do Host
    • Na barra de menus superior da janela da sua VM, selecione Input > Keyboard > Keyboard Settings..
    • Na lista de configurações, localize Combinação de teclas do host e altere o atalho para algo diferente de Esquerda ⌘ (usei Direita ⌘ como nunca a uso).
  2. Agora que você pode definitivamente usar o Left ⌘ dentro do ambiente da VM, remapeie as chaves com o XKB:
    • Abra e edite (com cuidado): /usr/share/X11/xkb/symbols/pc
    • Simplesmente troquei <LCTL>e fiquei <LWIN>assim:
    • key <LCTL> { [ Super_L ] };
    • key <LWIN> { [ Control_L ] };
  3. Agora limpe os mapeamentos antigos do cache xkb:
    • rm -rf /var/lib/xkb/*
  4. Reinicie o ubuntu para que as alterações entrem em vigor.

Aviso: evitaria fazer mais de uma alteração por vez via xkb, a menos que você realmente saiba o que está fazendo, algumas chaves mapeadas incorretamente ao mesmo tempo podem ser uma verdadeira dor de cabeça!

Crédito total para Radu Cotescu pelas instruções de remapeamento do xkb - elas eram para o ubuntu 14.04, mas funcionam bem para o ubuntu 16.04.

danwild
fonte
Certifique-se de tirar uma foto antes de fazer isso! Felizmente, tinha outro propósito e, depois de fazer isso, o Ubuntu não inicializava corretamente. Eu reverti e ele começou a funcionar novamente. Estou usando o 18.04 para o que vale a pena.
tom
2

Pesquisando em outras perguntas, encontrei esta ferramenta para mapear o Ctrl para o CMD do teclado do Macbook à esquerda para executar CMD + C ou CMD + V ou outra coisa:

Instale o aplicativo gnome-tweaks:

sudo apt-get install gnome-tweaks

Abra o aplicativo Applications -> Gnome Tweakse mapeie a CTRL para WIN (o mesmo que CMD no Mac), fazendo o seguinte:

  1. Teclado e Mouse
  2. Opções adicionais de layout (Super à esquerda)
  3. Comportamento das teclas Alt / Win
  4. Ctrl é mapeado para Win e as teclas Ctrl usuais`

Aproveite o CMD + C or CMD + Vseu OSX VirtualBox usando a VM ubuntu-18.

Hemã Vidal
fonte
Trabalhou. <filler>
skwny 4/04
Isso me perdeu a capacidade de usar a chave Win / Apple. Em vez disso, eu fiz o seguinte para o Passo 3 e 4: (3) Ctrl position, (4) Swap Left Win with Left Ctrl.
Turgs 19/11
0

Ainda estou executando o Ubuntu 12.04 por vários motivos, por isso não posso falar para iterações posteriores, mas tente o seguinte:

Ok, em primeiro lugar, você pode querer definir sua chave de host VB para algo específico, como o comando certo ou a tecla alt certa ... algo que você não usa normalmente. Eu acho que o padrão é a tecla de comando esquerda, que vai interferir nas operações da maioria das pessoas.

Isso pode ser feito nas preferências do próprio VirtualBox (em vez de dentro da máquina convidada ou como qualquer configuração específica da máquina). Com o aplicativo VB aberto (não a janela da VM), escolha VirtualBox-> Preferências-> Entrada e selecione a chave do host no início do campo / lista de mapeamentos "Máquina virtual".

Ok, depois disso, dentro da própria máquina convidada do Ubuntu:

  1. Abra as configurações do sistema e escolha Layout do teclado.
  2. Abra a guia Layouts.
  3. Você provavelmente terá apenas uma entrada - inglês (EUA) ou algo assim. Destaque isso e clique no botão "Opções" no canto inferior direito.
  4. Abra o expansor "Alt / Win Key Behavior".
  5. Escolha "O controle está mapeado para as teclas Win (e as teclas Ctrl comuns)".

Você deve achar que sua chave de comando do Mac agora funciona como desejado para o comando C, o comando V, etc.

Kaitain
fonte
0

No caso do Kubuntu 18.04 com o Plasma 5, o que funcionou para mim foi (em Configurações do sistema / Dispositivos de entrada / Teclados) configurando o hardware como 'genérico de 104 teclas' e o layout como 'inglês (macintosh)'

lurscher
fonte
-1

Isso dependerá do software que você está usando para executar sua máquina virtual. Por exemplo, eu uso o VMWare Fusion para executar o Ubuntu no meu Mac e, para alcançar o que você deseja, fui para "Configurações" do VMWare Fusion e configurei o mapeamento de chaves que eu queria dentro dessa máquina virtual específica (posso ter várias configurações, uma para cada VM).

Eu nunca usei o VirtualBox, mas tenho certeza que você pode fazer isso nas Configurações do VirtualBox.

David Lopes
fonte