Como mostrar ou ocultar o Visualizador de Teclado com um atalho de teclado?


19

Gostaria de exibir e ocultar o Visualizador de Teclado usando um atalho.

  • Existe uma maneira de exibir o Visualizador de Teclado através de um atalho de teclado?
  • Existe uma maneira de exibir automaticamente o Visualizador de Teclado depois de mudar para um idioma específico?

A solução ideal seria atribuir um atalho de teclado a um Apple Script que mostra o teclado.
duci9y

Respostas:


15

Iniciar o Visualizador de Teclado com um Serviço (Melhorado)

Você pode iniciar o Keyboard Viewer com um atalho usando o Automator e a funcionalidade OS X Services.

O programa Visualizador de Teclado está em /System/Library/Input Methods/KeyboardViewer.app(nas versões anteriores ao Lion, pode estar em /System/Library/Components/KeyboardViewer.component/Contents/SharedSupport/KeyboardViewerServer.app). Você a abre com uma tecla de atalho usando o Automator para criar um serviço simples do iniciador.

  1. Abra o Automator e selecione Service como o tipo do seu novo documento.
  2. Defina as opções (na parte superior da área do fluxo de trabalho) como "O serviço não recebe entrada em nenhum aplicativo ".
  3. Adicione a ação Executar AppleScript ao seu fluxo de trabalho e substitua o texto pelas seguintes linhas:

    if application "KeyboardViewer" is running then
        quit application "KeyboardViewer"
    end if
    
    activate application "KeyboardViewer"
    
    -- wait until the window has been closed, then end the KeyboardViewer process
    set numberOfWindows to 1
    repeat until numberOfWindows = 0
        delay 5
        tell application "System Events"
            tell process "KeyboardViewer"
                set numberOfWindows to count windows
            end tell
        end tell
    end repeat
    quit application "KeyboardViewer"
    
  4. Salve com um nome como "Abrir visualizador de teclado" e abra Preferências do teclado na guia Atalhos do teclado . Selecione Serviços no painel esquerdo e role para a parte inferior, onde você verá o nome do seu Serviço na Seção Geral.
  5. Verifique se a caixa está marcada para habilitá-la, selecione-a e clique em adicionar atalho para definir uma tecla de atalho.
  6. Após definir a tecla de atalho, abra o menu Serviços em qualquer aplicativo (ou seja, Localizador> Serviços) e feche-o. Por alguma razão, minha tecla de atalho não funcionou até que eu fiz isso.

Algumas notas:

  • O script requer que você marque a caixa Habilitar acesso para dispositivos auxiliares no painel de preferências Acesso Universal .
  • Fechar a janela do Visualizador de Teclado não fecha o aplicativo e, como Lri aponta, pode ser um pouco complicado, então o repeatloop verifica a cada 5 segundos se o Visualizador de Teclado tem janelas abertas e, se não, fecha o processo.
  • Se você estiver executando um sistema operacional anterior ao Lion, pode ser necessário substituir as instâncias KeyboardViewerpor KeyboardViewerServer. Não tenho nada pré-Leão à mão para testar isso (se alguém puder nos reportar nos comentários, isso seria ótimo.
  • Como o script faz um loop até o Visualizador do Teclado ser fechado, o ícone da engrenagem giratória do Automator será exibido na barra de menus até o fechamento.

SIM! Isto é exatamente para o que estou procurando. Eu estou familiarizado com automação e scripts de shell, só precisava de uma dica. Muito obrigado ... :)
jm666

Atualizei isso usando um Applescript que executa uma verificação para ver se a janela foi fechada e, se assim for, encerra o processo, para evitar a perda de desempenho. Qualquer pessoa interessada na versão antiga baseada no bash pode encontrar essa revisão aqui .
robmathers

Com modificações mínimas, esse script alterna o visualizador. Substitua "end if" por "else" e mova "else if" para o final.
AdamAL

Ótima solução. No entanto, o item de menu "Mostrar visualizador de teclado" não sabe que o visualizador de teclado está em execução? Portanto, esse tipo de quebra esse item de menu se você usar os dois.
precisa saber é o seguinte

/System/Library/Input Methods/KeyboardViewer.appnão existe na Catalina. Abri todos os aplicativos /System/Library/Input Methodse nenhum deles abriu o visualizador de teclado. Alguma ideia?
Kerndog73 2/01

4

O plug-in Extra Scripts do Quicksilver oferece essa funcionalidade fornecendo Show Keyboard Viewer.scpt .

Além disso, quando você cria um gatilho do Quicksilver para Show Keyboard Viewer.scpt com a ação Executar , obtém a tecla de atalho global Visualizador de teclado.

Aqui está a fonte do script:

property theApplication : "KeyboardViewer"
property thePath : "/System/Library/Input Methods/KeyboardViewer.app"

set HFSPath to ((POSIX file thePath) as string)
tell application "System Events" to ¬
    set isRunning to 0 < (count (application processes whose name is theApplication))
if isRunning then
    tell application HFSPath to quit
else
    ignoring application responses
        tell application HFSPath to activate
    end ignoring
end if

Se o KeyboardViewer for aberto com AppleScript ou com opene a janela principal for fechada, o processo do Keyboard Viewer permanecerá aberto e continuará usando cerca de 0 a 20% da CPU.


Normalmente, não gosto de instalar aplicativos de terceiros para coisas simples de script, mas essa é a exceção . :) Muito obrigado, trabalhando como um encanto. ;)
jm666 30/08/12

Se você deseja evitar software de terceiros, acabei de postar uma resposta que fará a mesma coisa com o software embutido.
robmathers

sry mach, @CanuckSkier postou uma resposta do que eu mais gosto, então, aceitando a resposta dele. +1 de qualquer maneira para o QuickSilver. ;)
jm666

4

Ainda bem que encontrei este tópico. Com base nas respostas acima, criei um script de extensão Alfred que alterna o Visualizador de Teclado.

https://dl.dropbox.com/u/29440342/linkedFiles/Keyboard%20Viewer.alfredextension

Ele fornece uma palavra-chave alfred "kv" que ativa e desativa o Visualizador de Teclado, executando o seguinte AppleScript:

-- adapted from http://apple.stackexchange.com/a/62532
if application "KeyboardViewer" is running then
    quit application "KeyboardViewer"
else
    activate application "KeyboardViewer"
end if

(*
-- adapted from http://apple.stackexchange.com/a/59986
tell application "System Events" to tell process "SystemUIServer"
    tell (menu bar item 1 where description is "text input") of menu bar 1
        click
        click (menu item 1 where title ends with "Keyboard Viewer") of menu 1
    end tell
end tell
*)
-- icon ripped from osx /System/Library/PreferencePanes Keyboard.prefPane/Contents/Resources/Keyboard.icns

Deixei uma implementação alternativa comentada, caso eu tenha problemas de desempenho que ela deveria evitar.


1
Link quebrado. Você gostaria de publicá-lo novamente. Este é um Alfred Workflow que eu usaria.
DDAA

Aqui vamos nós, eu reimplemented-lo (e também adicionou um atalho de teclado Cmd + Alt + Ctrl + Shift + K): packal.org/workflow/toggle-keyboard-viewer-0
Matt Sephton

3

Eu encontrei uma maneira através do BetterTouchTool para fazer o seguinte:

  • Ative o Visualizador de Teclado por um atalho
  • Feche o Visualizador de teclado com outro atalho
  • Alterne o Visualizador de Teclado por um atalho (não há necessidade dos dois anteriores)
  • Também carreguei o AppleScript por conveniência

Plataforma: rMBP Mountain Lion OSX 10.8


Ative o Visualizador de Teclado por um atalho

  • Inicie o BetterTouchTool
  • Adicionar atalho de teclado
  • Adicionar ação predefinida >> Abrir aplicativo / arquivo / script ...
  • Navegue para Macintosh HD / Sistema / Biblioteca / Métodos de entrada /
  • Selecione KeyboardViewer

Agora você tem um atalho de teclado para ativar o visualizador sem um script adicional.

NO ENTANTO, notei que pressionar o botão X vermelho não sai do aplicativo, o que significa que o visualizador do teclado será ativado apenas uma vez. Então você precisa criar um script para sair do programa.

Para corrigir este problema:


Feche o Visualizador de teclado com outro atalho de teclado

  • Open Automator
  • Escolha Aplicativo como tipo de documento
  • Adicionar RunAppleScript
  • Onde diz (* Seu script vai aqui *), substitua-o por quit application "KeyboardViewer"
  • Compile e salve como nos documentos ou em qualquer lugar que você quiser (mudei para o mesmo local que o KeyboardViewer)
  • Abra o BetterTouchTool
  • Adicionar atalho de teclado
  • Adicionar ação predefinida >> Abrir aplicativo / arquivo / script ...
  • Localize o arquivo do aplicativo que você acabou de salvar

Agora você tem uma maneira de sair do visualizador do KeyBoard definitivamente, uma vez ativado. Use-o em vez do botão X vermelho. Até eu descobrir por que o visualizador de teclado não fecha completamente quando você pressiona o botão X, essa deve ser a sua solução.

EDITAR

Eu descobri uma maneira de alternar o visualizador de teclado!


ALTERAR O VISUALIZADOR DO TECLADO por um atalho de teclado

mesmo processo de antes, mas o código foi alterado:

  • Open Automator
  • Escolha Aplicativo como tipo de documento
  • Adicionar RunAppleScript
  • Onde diz (* Seu script vai aqui *), substitua-o por
  if application "KeyboardViewer" is running then
      quit application "KeyboardViewer"
  else
      activate application "KeyboardViewer"
  end if
  • Compile e salve como nos documentos ou em qualquer lugar que você quiser (mudei para o mesmo local que o KeyboardViewer)
  • Abra o BetterTouchTool
  • Adicionar atalho de teclado
  • Adicionar ação predefinida >> Abrir aplicativo / arquivo / script ...
  • Localize o arquivo do aplicativo que você acabou de salvar

Agora o visualizador de teclado é alternado e você nem precisa atribuir vários atalhos!


Link para AppleScript

Fiz o upload do aplicativo on-line para acesso mais rápido, em vez de executar todas as etapas de codificação acima (basta ativar esse aplicativo pelo BetterTouchTool) No entanto, como não sou um editor identificado, o sistema operacional pode impedir a execução desse aplicativo, dependendo das suas preferências de segurança. Portanto, se você preferir não executar aplicativos de editores não identificados, siga as etapas acima para criar seu próprio aplicativo!

Link para o arquivo: https://www.box.com/s/e2461c91e30e0af025e7


Espero que ajude alguém, pois me ajudou :)


fantástico!! Eu pensei que adicionar o aplicativo keyboardViewer diretamente ao meu índice da barra de inicialização seria um bom substituto para meus propósitos, mas não há opção para fechar o kbv quando estiver em execução! então, você não pode invocá-lo uma segunda vez - estranho. de qualquer maneira, seu script funciona bem! (Eu tive que salvá-lo como um script / executar apenas para que funcionasse para mim.) Tx!
PTIM

@memeLab feliz que funcionou para você :)
Renderização

3

Isso também funcionaria após o fechamento da janela principal, clicando no botão Fechar:

if application "KeyboardViewer" is running then
    tell application "System Events" to number of windows of process "KeyboardViewer"
    if result is 0 then
        quit application "KeyboardViewer"
        delay 0.1
        launch application "KeyboardViewer"
    else
        quit application "KeyboardViewer"
    end if
else
    launch application "KeyboardViewer"
end if

Se o Keyboard Viewer for aberto com AppleScript ou open -a KeyboardViewera janela principal for fechada, o processo permanecerá aberto e continuará usando cerca de 0 a 15% da CPU. Isso não acontece ao selecionar Mostrar visualizador de teclado no menu de entrada. Portanto, uma opção melhor pode ser clicar no item de menu:

tell application "System Events" to tell process "SystemUIServer"
    tell (menu bar item 1 where description is "text input") of menu bar 1
        click
        click (menu item 1 where title ends with "Keyboard Viewer") of menu 1
    end tell
end tell

Ambos os scripts requerem acesso para dispositivos auxiliares serem ativados no painel de preferências de acessibilidade.


2

Não é um atalho de traço único, mas uma solução "não irritante" é Fn+ Ctrl+ F8para focar nos ícones " Menu de status " no lado direito da barra de menus. ( Seção 4 )

insira a descrição da imagem aqui

As setas o direcionam para o ícone Preferências do teclado e as opções Mostrar / Ocultar. Quando você insere Fn+ Ctrl+, F8o ícone no lado esquerdo mais à esquerda dos ícones "Menu Status", localizado na metade direita da barra de menus, fica destacado. Depois de selecionado, use o Right Arrow →para navegar até o desejado. Use Down Arrow ↓para abrir o menu e selecione a opção desejada. Observe que a Optiontecla disponibilizará diferentes opções de menu em alguns dos "menus de status".

insira a descrição da imagem aqui

Note que Fn+ Ctrl+ F2ativará o ícone do menu Apple  no lado esquerdo. A partir daí Right Arrow →, você terá acesso ao menu Aplicativo. Essas opções estão disponíveis em Preferências do sistema >> Teclado >> Atalhos :: Teclado:

insira a descrição da imagem aqui

Dependendo de como você tiver configurado as teclas de função, isso Fné opcional.

insira a descrição da imagem aqui

No macOS Sierra, você também pode usar o Siri para ajudar nisso. Invoke Siri com qualquer atalho de teclado que você escolher a partir de Preferências do Sistema >> Siri :: atalhos de teclado, por exemplo Option+Spacebar

insira a descrição da imagem aqui

... depois diga "Ativar o visualizador de teclado"

insira a descrição da imagem aqui

... e pronto:

insira a descrição da imagem aqui

Infelizmente, Siri não vai fechar o teclado Viewer, nem será Command⌘+w


0

você pode fazer tudo pelo Automator:

  1. abra o Automator e selecione "Aplicativo"
  2. no topo da biblioteca, localize "Iniciar aplicativo", clique duas vezes nele
  3. escolha "outro" e navegue até o arquivo KeyboardViewer em / Sistema / Biblioteca / Métodos de entrada
  4. Salve com um nome como "iniciar teclado". teste-o.

próxima parte é fechar o teclado:

  1. abra o Automator e selecione "Aplicativo"
  2. no topo da biblioteca, encontre "Sair do aplicativo" e clique duas vezes nele
  3. escolha "outro" e navegue até o arquivo KeyboardViewer em / Sistema / Biblioteca / Métodos de entrada

  4. Salve com um nome como "sair do teclado". teste-o.

agora você terá dois arquivos, um para abrir e outro para fechar.

tudo o que você precisa é associar os botões do mouse para iniciar esses dois arquivos!

por exemplo, estou usando o Microsoft Bluetooth Notebook Mouse 5000 e

funciona muito bem para mim no 10.9.1


0

Monitor de Atividade, o KeyboardViewer.app é iniciado a partir de

Localização do localizador: / Sistema / Biblioteca / Métodos de entrada / KeyboardViewer.app .

Uso normal: abra a partir da barra de menus , feche o cursor do mouse para ver os botões da janela onde é possível clicar no botão (x) fechar . Para ativar o painel Barra de menus , guia Preferências do sistema , Teclado , Teclado , selecione Mostrar visualizadores de teclado e emoji na barra de menus .

O applet KeyboardViewer exibe comportamentos restritivos.

  1. A janela do applet não responde a ⌘-Q , ⌘-W .
  2. Estranhamente, quando aberto da pasta Input Methods , o Activity Monitor mostra que o applet permanece em execução após o fechamento da janela.
  3. O automatismo AppleScript mostrado abaixo é executado lentamente em segundo plano; os serviços de teclado levam segundos para registrar ações de abertura e fechamento no Activity Monitor.
  4. O script de atalho do teclado mostrado abaixo é executado sem erros, mas o sistema parece ignorar.
  5. O Quit Application da Sierra Automator não fecha o KeyboardViewer.app

O script do Automator a seguir pode ser salvo como um aplicativo para abrir e fechar o KeyboardViewer.app com um único clique (o Activity Monitor também mostra essa atividade de abrir e fechar) e funciona bem quando colocado no Dock.

Automator: Novo , Aplicativo , Execute AppleScript , salve este script

-- see above post, Render
    on run {input, parameters}
        if application "KeyboardViewer" is running then
            quit application "KeyboardViewer"
        else 
            activate application "KeyboardViewer"
        end if
        return input
    end run
-- icon /System/Library/PreferencePanes Keyboard.prefPane/Contents/Resources/Keyboard.icns

Infelizmente, isso não adiciona um atalho de teclado. No entanto, ele oferece uma solução alternativa com um clique. Pode haver uma maneira de adicionar um atalho de teclado usando o Automator. Um script de atalho geral se parece com isso (mas não sei como incorporar).

tell application "System Events"
    set application "KeyboardViewer" to keystroke "K" using control down
end tell

(macOS Sierra 10.12.6 no MP 6,1)

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.