Como forçar argumentos da linha de comando para um atalho de programa no dock?


17

Eu tenho o Chrome instalado em Aplicativos e um atalho para ele no Dock. Como conseguir forçar alguns argumentos da linha de comando para cada inicialização deste aplicativo?

Deixe-me ser mais claro: no Terminal, eu posso fazer isso: open / Applications / Google \ Chrome.app --args --explicitly-allowed-ports = 6666 E dessa maneira modifico o comportamento do Chrome como eu quiser. Como posso ter essa opção por padrão ao iniciar o aplicativo a partir do Finder of the Dock?

Respostas:


9

Uma maneira de fazer isso é com o AppleScript.

Abra o AppleScript Editor (/ Aplicativos / Utilitários) e digite isto em:

do shell script "open '/Applications/Google Chrome.app'  --args --explicitly-allowed-ports=6666"

Salve-o como um aplicativo e adicione-o ao Dock.
Clique no ícone do aplicativo e o Chrome abrirá com seus parâmetros personalizados.

Dessa forma, funciona, mas não é exatamente o ideal por alguns motivos:

  • A execução do AppleScript demorará um pouco mais do que apenas abrir o aplicativo
  • Você terá dois ícones no seu dock (o script e o Chrome)

Isso funcionará, mas estou interessado em ver se alguém apresenta uma resposta melhor.


O jeito de Nathan é o melhor. No momento, não há código no Chrome para tomá-lo como padrão ou para ler um arquivo de preferências. Essas opções são temporárias para depuração até que um recurso seja adicionado mais formalmente - então você deve ter uma maneira de alterá-lo mais permanentemente. Consulte chromium.org/developers/design-documents/appmode-mac para obter planos para aplicativos auxiliares. Veja fluidapp.com para um wrapper agradável - você pode ser capaz de cortá-lo para atender às suas necessidades (ou o poder autor como uma sugestão de alargar a ferramenta para o seu caso de uso)
bmike

"Salve-o como um aplicativo e adicione-o ao Dock." - como faço para salvá-lo como um aplicativo? E tentar adicionar um arquivo .scpt marcado como executável ao Dock simplesmente não funciona para mim no Mountain Lion: o arquivo simplesmente não "adere" ao Dock.
yurkennis

4

Se você for dentro do pacote de aplicativos (clique com o botão direito do mouse no aplicativo no Finder e selecione "Exibir conteúdo do pacote") e vá para a pasta Contents / MacOS, deve haver um arquivo chamado Google Chromecujo ícone é um quadrado preto. Anote seu nome e renomeie-o (algo fácil como Google Chrome orig). Crie um arquivo de texto em branco na pasta com o mesmo nome ( Google Chrome) que o arquivo original e cole no seguinte script:

#!/bin/bash

/Applications/"Google Chrome.app"/Contents/MacOS/"Google Chrome orig" --args --explicitly-allowed-ports=6666

Torne seu arquivo de script executável ( chmod +x "Google Chrome orig") e veja se isso inicia o Chrome corretamente!


1

De acordo com o artigo Dicas do Mac OS X (encontrado nas opções de comando do aplicativo mac gui do Google ), isso pode ser feito editando o pacote do aplicativo. Eu faria isso em uma cópia de backup do Chrome para testá-lo primeiro.

  1. Para abrir o pacote de aplicativos do Google Chrome, clique com o botão direito do mouse e pressione a tecla Ctrl e selecione Show Package Contents.
  2. Dentro do pacote, navegue Contents/Mac OS/Google Chromee renomeie para algo como Google Chrome-bin.
  3. Crie um arquivo de texto no mesmo local com o nome Google Chromecom o seguinte conteúdo:

    !/bin/sh
    
    exec '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome-bin' --args --explicitly-allowed-ports=6666"
  4. Use terminal para alterar o novo arquivo para ser executável ( chmod 755).

Observe que eu realmente não tentei isso, apenas descrevendo o que é mencionado no artigo vinculado.


A desvantagem desta resposta é que ela resulta em uma longa série de "O Google Chrome-bin deseja usar suas informações confidenciais armazenadas em ... em seu chaveiro. Deseja permitir acesso a este item?"
yurkennis
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.