Atalho de teclado global para abrir uma guia no Chrome no Mac OS X

7

Qual é a melhor maneira de configurar um atalho de teclado global para abrir uma guia em Chrome no Mac OS X?

Advertências

  • Deve ser o mais simples possível, por isso não quero <alt><tab> + <cmd><t> a cada vez.
  • Isso deve ser global , então, se eu pressionar meu atalho (o que é <cmd><return> ) enquanto estou no Mail.app, ele precisa trazer o Chrome para o frente e abra uma nova aba
  • É necessário abrir a nova página da guia, ou seja, chrome://newtab , não um website como http://www.google.com
  • A maior prioridade é que ele abre rápido, rápido e rápido, a próxima prioridade é facilidade de configuração

Solução atual

Agora mesmo eu tenho o Quicksilver.app configurado para execute o seguinte AppleScript (ou osascript para ser preciso) sempre que eu pressionar <cmd><return> :

#!/usr/bin/osascript

tell application "Google Chrome Canary"
    activate
end tell

tell application "System Events"
    tell process "Google Chrome Canary"
        tell menu bar 1
            tell menu bar item "File"
                tell menu "File"
                    click menu item "New Tab"
                end tell
            end tell
        end tell
    end tell
end tell

O problema é que pode levar até 5 segundos se tiver sido enquanto desde que eu corri por último. Eu tinha cumprido isso em um * .app, mas isso foi mais lento do que torná-lo um executável osascript . Eu não tenho medo de tentar desenvolvendo uma versão compilada do script acima, mas eu sou um UNIX / web desenvolvedor, não o OS X, e eu não estou familiarizado com o sistema.

    
por aaron 01.06.2011 / 16:10

4 respostas

6

Você pode executar o seguinte comando do Terminal (por exemplo, em um script bash):

open -a "Google Chrome" chrome://newtab

Isso fará com que o aplicativo Google Chrome abra a URL chrome: // newtab , abrindo assim uma nova guia.

Infelizmente, o Google Chrome não registra o tipo de URL chrome:// nos Serviços de inicialização e acredita que esse é um caminho de arquivo.

Para corrigir isso, clique com o botão direito do mouse no pacote de aplicativos do Google Chrome, selecione Mostrar conteúdo do pacote , abra o diretório Conteúdo e edite Info.plist em um editor de texto.

Pesquise CFBundleURLTypes . Edite as seguintes linhas para adicionar as linhas indicadas por um + :

<key>CFBundleURLTypes</key>
<array>
+   <dict>
+       <key>CFBundleURLName</key>
+       <string>Chrome Internal URLs</string>
+       <key>CFBundleURLSchemes</key>
+       <array>
+           <string>chrome</string>
+       </array>
+   </dict>
    <dict>
        <key>CFBundleURLName</key>
        <string>Web site URL</string>

Salvar e fechar. Mova o pacote de aplicativos do Google Chrome para um diretório diferente e vice-versa, para que o Launch Services consiga a alteração (se não funcionar, efetue logout e volte).

Em seguida, execute open , como descrito no começo.

Quando isso funcionar, sua melhor opção é executar um script de shell que execute o comando open , que por sua vez é invocado, por exemplo: pelo seu lançador. Como acredito que o atraso é causado por osascript loading, praticamente qualquer solução escolhida aqui deve ser rápida o suficiente.

Para semi-automatizar a edição do arquivo Info.plist (você precisa repetir isso para todas as atualizações do Chrome), você pode usar PlistBuddy no Terminal. Primeiro, crie um arquivo, por exemplo chamado chrome-url.plist com o seguinte conteúdo:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
  <dict>
    <key>CFBundleURLName</key>
    <string>Chrome Internal URLs</string>
    <key>CFBundleURLSchemes</key>
    <array>
        <string>chrome</string>
    </array>
    </dict>
</array>
</plist>

Em seguida, você pode usar o seguinte para corrigir o Info.plist do Chrome:

/usr/libexec/PlistBuddy -c "Merge '/path/to/chrome-url.plist' :CFBundleURLTypes" /Applications/Google\ Chrome.app/Contents/Info.plist

    
por 01.06.2011 / 16:41
5

O Chrome agora tem suporte para atalhos globais integrados e criei o Extensão Global New Tab Short para aproveitá-lo.

Instale, atribua um atalho e defina o escopo para Global, e você terá acesso super rápido ao OmniBar.

    
por 08.07.2014 / 23:52
1

Você não precisará mais modificar o Chrome se enviar um AppleEvent "get url" diretamente. Use isto:

tell application "Google Chrome"
    open location "chrome://newtab"
end tell
    
por 01.06.2011 / 23:17
0

Uma maneira de fazer isso é através de um serviço de Automator:

  1. Crie um novo documento do Automator "Serviço".
  2. Altere o tipo de entrada para "sem entrada". ("Serviço não recebe entrada")
  3. Arraste a ação "Executar AppleScript" para o script do Automator.
  4. Cole no script abaixo.
  5. Salve o script como, por exemplo, "Focus New Chrome Tab".
  6. Abra o painel "Teclado" nas Preferências do Sistema.
  7. Escolha a guia "Atalhos" e, em seguida, selecione "Serviços".
  8. Na lista de serviços, encontre "Focus New Chrome Tab".
  9. Habilite-o e adicione uma combinação de teclas para a "Nova guia do Chrome do Focus".

Teste mudando para, e. iTunes, abrindo o menu "iTunes | Serviços". "Focus New Chrome Tab" deve estar listado, juntamente com a tecla de atalho selecionada. Aperte a tecla de atalho e você deve obter uma nova guia do Chrome.

[Observe que há um bug antes que a atadura "global" funcione em um determinado aplicativo, você precisa abrir o menu Serviços, o que o torna um pouco chato de usar no momento.]

Script para adicionar no passo (4):

tell application "Google Chrome"
    open location "chrome://newtab"
    activate
end tell
    
por 16.04.2015 / 18:43