Mudar para fonte de entrada específica

23

No Mac OS X, existem atalhos de teclado para alternar entre as fontes de entrada ativadas.

texto alternativo

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

Nikem
fonte
O layout do teclado e o idioma da interface são independentes. E como o idioma da interface se aplica somente após a reinicialização de um programa, qualquer coisa que você ganhar com um atalho seria negada pelo requisito de reiniciar os aplicativos de qualquer maneira.
Daniel Beck
Não estou interessado em alterar os idiomas da interface. Somente idiomas de entrada são de interesse.
Nikem
Simplifiquei e esclareci sua pergunta. Reverta se você acha que fiz algo errado (sou novo em fazer isso).
Daniel Beck

Respostas:

7

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

  • Ative o 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-F8está definido nos menus Mover foco para status em Preferências do sistema »Teclado» Atalhos do teclado »Entrada de teclado e texto .
  • Verifique se o menu Origens de entrada é o item de menu mais à esquerda que pode ser movido, arrastando enquanto mantém Cmdpressionado.

Use AppleScript Editore 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

Salve uma vez para cada idioma, alternando o nome do idioma. Se você quiser pressionar teclas diferentes ou atribuir algo diferente Ctrl-F8, substitua pelos códigos das teclas aqui . Você também pode mover o menu Origens de entrada da posição mais à esquerda, pressionando algumas vezes as teclas de seta para a direita .

Invoque os scripts da maneira que desejar, por exemplo, use o iniciador de aplicativos (Quicksilver, Launchbar etc.) ou envolva-os nos Serviços usando o Automator e atribua a eles atalhos de teclado em Preferências do Sistema »Teclado» Atalhos de Teclado »Serviços .

Daniel Beck
fonte
1
@Nikem Funcionou?
Daniel Beck
1
Sim funcionou.
Nikem
1
Anda, Daniel, embora eu tenha escolhido outra solução, obrigado por me apresentar o Action Script and Services :) #
Nikem
@ Nikem De nada. Faça um voto positivo na minha resposta clicando no "triângulo da seta para cima" ao lado, se você achar útil essa resposta. Você também pode aceitar uma resposta (indicando que é a que mais gosta e considerar o seu problema resolvido) clicando na marca de seleção ao lado. A propósito, o ActionScript é Adobe, este é AppleScript.
Daniel Beck
@ Daniel Na verdade, não sei qual resposta recomendar. Eu escolhi o meu, mas o seu é mais amplamente utilizável ... #
Nikem
12

Eu vim com uma solução um pouco melhor no AppleScript, desde que você saiba 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 depois chamá-lo 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".

Asmus
fonte
Definitivamente melhor do que o meu. Eu realmente deveria aprender meu AppleScript corretamente.
Daniel Beck
isso funcionou perfeitamente por muitos anos, mas com Catalina parece que "texto de entrada" não está mais acessível na barra de menus
Frank Mittelbach
6

Uma opção seria baixar o changeInput e atribuir 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>

Consulte a documentação private.xml .

VK_CHANGE_INPUTSOURCE_ENGLISH é definido em vkchangeinputsourcedef.xml . Você pode ver os IDs das fontes de entrada no EventViewer.app. Sem, | ModifierFlag::NONEpor exemplo, a primeira configuração também se aplicaria à opção-comando-E. Consulte a fonte para obter os valores do código-chave e configurações predefinidas .

Lri
fonte
4

Eu sei que é uma pergunta antiga. Mas mesmo no final de 2016, ainda não encontrei uma solução simples e agradável. Portanto, fiz IMEShortcuts , funciona no Sierra. Você pode atribuir um atalho personalizado para qualquer método de entrada específico. Por favor, tente. E se vocês encontrarem algum erro, 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 está quebrado na Sierra. Se você estiver usando Yosemite ou El Capitan, seria outra boa opção.

rock9c
fonte
Obrigado por IMEShortcuts! É muito bom. Eu pagaria com prazer $ 5 ou mais por isso se você adicionasse ícones à barra de menus para mostrar o idioma ativo (para que eu não precisasse ter os dois IMEshortcuts e o ícone do aplicativo na minha barra de menus ocupando espaço). Também gostaria de poder personalizar o ícone usado - por exemplo, quero usar a entrada francesa canadense porque é mais próxima do QWERTY dos EUA, mas quero ver uma bandeira francesa porque uma bandeira canadense não simboliza "francês" para mim. Essas coisas tornariam tudo incrível!
Iconoclast
Aviso: se você já não baixou o IMEShortcuts no passado (antes do registro do domínio expirar e ter sido substituído por uma página irregular com malware de extensão do Chrome), não pegue nada do rockcell.com até que isso seja solucionado.
ecmanaut 01/03
1

Eu tenho outra solução que mais me satisfez. KeyRemap4MacBook é um aplicativo que permite remapear os botões do teclado. Entre outras coisas, permite algum suporte, nem um pouco exaustivo, à mudança de idioma. Então, algumas configurações personalizadas fazem o que eu quero.

Contras: - aplicativo de terceiros - somente suporte limitado ao idioma por enquanto

Prós: - Conceitualmente, um pouco melhor que o script em execução na interface do usuário

Nikem
fonte
Não encontrei nada relacionado ao uso flexível de fontes de entrada no site, apenas algumas ações codificadas relacionadas ao russo / inglês. Você pode elaborar?
Daniel Beck
Não é flexível. Acontece que ele suporta a mudança para inglês e russo (e agora estoniano), que são os idiomas de que eu precisava. E permite mapear combinações arbitrárias de teclas para essas ações. Mudando para o idioma no meu caso.
Nikem
Estou tendo dificuldade para descobrir como configurar isso com o Karabiner.
precisa
1

No AppleScript, você deve ocupar apenas cmd + "espaço" (ou qualquer outra coisa, o que você altera na fonte do teclado).

E tudo o que você precisa:

    key code 49 using command down

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

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

Ivan Trubnikov
fonte
1

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

qwad1000
fonte
1
Bem-vindo ao superusuário. Leia Como recomendar software e edite sua resposta para incluir pelo menos as informações mínimas necessárias (os itens em negrito ). As postagens sem essas informações podem estar sujeitas a exclusão. Obrigado por contribuir.
Eu digo Restabelecer Monica
0

Este link tem um vídeo sobre como fazê-lo. Ele já possui um hotcake com "command + space", mas a tecla de atalho do holofote também é "command + space". O Spotlight substitui a tecla de atalho, para que a troca de idioma não ocorra. O vídeo no link mostrará como alterar a tecla de atalho para que você possa alternar a tecla de atalho.

Boa sorte,

David
fonte
1
Ele já sabe como alternar entre idiomas, ele quer mudar para um idioma específico , pois provavelmente tem mais de dois ativados.
Daniel Beck
Sim, exatamente como Daniel disse. Eu tenho 3 idiomas de entrada e preciso selecionar um específico.
Nikem
Desculpe ... Devo ter entendido mal a pergunta. Eu pensei que você estava tentando fazer uma maneira de alternar entre os idiomas com uma tecla de atalho.
David