Come posso forzare gli argomenti della riga di comando a un collegamento al programma nel dock?


17

Ho Chrome installato in Applicazioni e un collegamento ad esso nel Dock. Come posso ottenere per forzare alcuni argomenti della riga di comando ad ogni avvio di questa app?

Consentitemi di essere più chiaro, nel Terminale, posso farlo: apri / Applicazioni / Google \ Chrome.app --args --explicitly-allowed-doors = 6666 E in questo modo modifico il comportamento di Chrome come piace a me. Come posso avere questa opzione di default quando avvio l'app dal Finder del Dock?

Risposte:


9

Un modo per farlo è con AppleScript.

Apri AppleScript Editor (/ Applicazioni / Utility) e digita questo:

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

Salvalo come applicazione e aggiungi quell'applicazione al Dock.
Fai clic sull'icona dell'app e Chrome si aprirà con i tuoi parametri personalizzati.

In questo modo funziona, ma non è esattamente l'ideale per un paio di motivi:

  • L'esecuzione di AppleScript richiederà un po 'più di tempo rispetto all'apertura dell'app
  • Avrai due icone nel dock (lo script e Chrome)

Funzionerà, ma sono interessato a vedere se qualcuno trova una risposta migliore.


Il modo di Nathan è il modo migliore. Al momento non esiste alcun codice in Chrome che li prenda come predefinito o legga un file delle preferenze. Queste opzioni sono temporanee per il debug fino a quando una funzionalità non viene aggiunta in modo più formale, quindi dovresti avere un modo per cambiarla in modo permanente. Vedi chromium.org/developers/design-documents/appmode-mac per i piani per le app di supporto. Vedi fluidapp.com per un bel wrapper - potresti essere in grado di hackerarlo per soddisfare le tue esigenze (o all'autore potrebbe piacere un suggerimento per estendere lo strumento per il tuo caso d'uso)
bmike

"Salvalo come applicazione e aggiungi l'applicazione al Dock." - come posso salvarlo come applicazione? E provare ad aggiungere un file .scpt contrassegnato come eseguibile sul Dock non funziona per me con Mountain Lion: il file non si "attacca" al Dock.
yurkennis,

4

Se vai all'interno del pacchetto dell'app (fai clic con il pulsante destro del mouse sull'app nel Finder e seleziona "Visualizza contenuto pacchetto") e vai alla cartella Contenuti / MacOS, dovrebbe esserci un file chiamato la Google Chromecui icona è un quadrato nero. Prendi nota del suo nome e rinominalo (qualcosa di facile come Google Chrome orig). Crea un file di testo vuoto nella cartella con lo stesso nome ( Google Chrome) del file originale e incollalo nel seguente script:

#!/bin/bash

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

Rendi eseguibile il tuo file di script ( chmod +x "Google Chrome orig") e vedi se inizia Chrome correttamente!


1

Secondo l' articolo Suggerimenti di Mac OS X (trovato da Googling mac gui application command options ), questo può essere ottenuto modificando il bundle dell'applicazione. Lo farei su una copia di backup di Chrome per testarlo prima.

  1. Apri il pacchetto dell'applicazione Google Chrome facendo clic con il tasto destro / ctrl e facendo clic su di esso Show Package Contents.
  2. All'interno del pacchetto, navigare Contents/Mac OS/Google Chromee rinominarlo in modo simile Google Chrome-bin.
  3. Crea un file di testo nella stessa posizione con il nome Google Chromecon il seguente contenuto:

    !/bin/sh
    
    exec '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome-bin' --args --explicitly-allowed-ports=6666"
  4. Utilizzare il terminale per modificare il nuovo file in eseguibile ( chmod 755).

Nota, in realtà non ho provato questo, solo delineando ciò che è menzionato nell'articolo collegato.


Il rovescio della medaglia di questa risposta è che si traduce in una lunga serie di "Google Chrome-bin desidera utilizzare le informazioni riservate archiviate in ... nel tuo portachiavi. Vuoi consentire l'accesso a questo elemento?"
yurkennis,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.