Alternar para fonte de entrada específica

23

No Mac OS X, há atalhos de teclado para alternar entre fontes de entrada ativadas.

É possível alternar para um idioma específico? Portanto, se você tiver três métodos de entrada, poderá ter três atalhos: Ctrl-1 para inglês, Ctrl-2 para espanhol e Ctrl-3 para russo.

    
por Nikem 20.12.2010 / 19:56

8 respostas

7

Eu apresento a você a "solução" mais feia possível:

  • Ativar suporte para dispositivos auxiliares em Preferências do sistema »Acesso universal ,
  • e exibindo o menu Fontes de entrada na barra de menus em Preferências do sistema »Idioma e texto .
  • Verifique se o atalho Ctrl-F8 está definido para Mover o foco para os menus de status em Preferências do sistema »Teclado» Atalhos de teclado »Teclado & Entrada de texto .
  • Verifique se o menu Fontes de entrada é o item de menu mais à esquerda que pode ser movido arrastando enquanto segura Cmd .

Use AppleScript Editor e escreva três scripts, cada um deles com o seguinte código:

tell application "System Events"
    key code 100 using control down # press Ctrl-F8
    delay 0.5 # wait a bit, UI might be slow
    key code 125 # press down to open the menu
    keystroke "german" # name of your desired language, in my case tested using German
    key code 36 # press enter
end tell

Guarde uma vez para cada idioma, trocando o nome do idioma. Se você quiser pressionar teclas diferentes ou atribuir algo diferente de Ctrl-F8 , substitua pelos códigos-chave aqui . Você também pode mover o menu Input Sources de sua posição mais à esquerda, inserindo algumas teclas seta para a direita .

Invoque scripts como quiser, por exemplo. use o lançador de aplicativos (Quicksilver, Launchbar etc.) ou envolva-os em Serviços usando o Automator e atribua-lhes atalhos de teclado em Preferências do sistema »Teclado» Atalhos de teclado »Serviços .

    
por 20.12.2010 / 20:28
12

Eu criei uma solução um pouco melhor no AppleScript, já que você sabe o nome do layout do teclado para o qual deseja mudar. Crie uma função como esta:

on changeKeyboardLayout(layoutName)
 tell application "System Events" to tell process "SystemUIServer"
   tell (1st menu bar item of menu bar 1 whose description is "text input") to {click, click (menu 1's menu item layoutName)}
 end tell
end changeKeyboardLayout

e, em seguida, chame por

 changeKeyboardLayout("English")
 changeKeyboardLayout("German")

Esteja ciente de que os nomes dos Layouts de Teclado estão localizados, ou seja, em um sistema alemão, o exemplo acima precisaria chamar "Englisch" e "Deutsch".

    
por 22.01.2011 / 16:34
6

Uma opção seria baixar changeInput e assine atalhos para comandos do shell como changeInput U.S. .

Você também pode usar o KeyRemap4MacBook:

<?xml version="1.0"?>
<root>
  <vkchangeinputsourcedef>
    <name>KeyCode::VK_CHANGE_INPUTSOURCE_HIRAGANA</name>
    <inputsourceid_equal>com.apple.inputmethod.Kotoeri.Japanese</inputsourceid_equal>
  </vkchangeinputsourcedef>
  <item>
    <name>change_inputsources</name>
    <identifier>change_inputsources</identifier>
    <autogen>__KeyToKey__ KeyCode::E, VK_OPTION | ModifierFlag::NONE, KeyCode::VK_CHANGE_INPUTSOURCE_ENGLISH</autogen>
    <autogen>__KeyToKey__ KeyCode::H, VK_OPTION | ModifierFlag::NONE, KeyCode::VK_CHANGE_INPUTSOURCE_HIRAGANA</autogen>
  </item>
</root>

Veja a documentação do private.xml .

VK_CHANGE_INPUTSOURCE_ENGLISH é definido em vkchangeinputsourcedef.xml . Você pode ver os IDs das fontes de entrada do EventViewer.app. Sem | ModifierFlag::NONE , por exemplo, a primeira configuração também se aplica à opção-comando-E. Veja a fonte dos valores do código-chave e < a href="http://raw.github.com/tekezo/KeyRemap4MacBook/master/Tests/lib/string/data/checkbox.xml"> configurações predefinidas .

    
por 27.04.2013 / 23:39
4

Eu sei que é uma questão antiga. Mas mesmo no final de 2016, ainda não encontrei uma solução simples e agradável. Por isso, fiz IMEShortcuts , funciona na Sierra. Você pode atribuir um atalho personalizado para qualquer método de entrada específico. Por favor, dê uma chance. E se vocês encontrarem algum bug, eu ficaria feliz em ajudar.

Além disso, o Karabiner (conhecido como KeyRemap4MacBook) é um ótimo personalizador de teclado para Mac. Mas é um pouco complicado e atualmente quebrado na Sierra. Se você estiver usando Yosemite ou El Capitan, seria outra boa escolha.

    
por 08.12.2016 / 07:05
1

Encontrado kawa - aplicativo bastante simples para atender exatamente às suas necessidades. Atalhos de configuração para alternar diretamente para a fonte de entrada necessária.

    
por 20.01.2019 / 11:24
1

Eu tenho outra solução que me satisfez mais. O KeyRemap4MacBook é um aplicativo que permite remapear os botões do seu teclado. Entre outras coisas, permite algum apoio, não exaustivo, para a mudança de linguagem. Então, algumas configurações personalizadas fazem o que eu quero.

Contras:  - aplicação de terceiros  - apenas suporte limitado a idiomas para agora

Prós:  - Conceitualmente, um pouco melhor que executar o script na interface do usuário

    
por 21.12.2010 / 20:51
1

No AppleScript, você só deve usar o cmd + "space" (ou algo assim, o que você alterou a origem do teclado).

E tudo o que você precisa:

    key code 49 using command down

49 - código do botão 'space' em ASCII para AppleScript.

P.S .: não se esqueça de ter acesso ao seu utilitário AppleScript nas Preferências do Sistema.

    
por 28.01.2017 / 22:59
0

Este link tem um vídeo sobre como fazer isso. Já tem um hotcake com "command + space", mas o hot-key do spotlight também é "command + space". O Spotlight ultrapassa a tecla de atalho, de modo que o interruptor de idioma não ocorre. O vídeo no link mostrará como alterar a tecla de atalho para que você possa alternar a tecla de atalho.

Boa sorte,

    
por 20.12.2010 / 20:06