Ich versuche, die Anweisungen zum Fixieren von Startregistern in Chrome zu befolgen . Wie füge ich unter OS X Befehlszeilenargumente zu Elementen hinzu, die in meinem Dock verbleiben?
Ich versuche, die Anweisungen zum Fixieren von Startregistern in Chrome zu befolgen . Wie füge ich unter OS X Befehlszeilenargumente zu Elementen hinzu, die in meinem Dock verbleiben?
Sie haben grundsätzlich zwei Möglichkeiten:
Option 1 : Verwenden Sie Automator, um eine Anwendung zu erstellen, die Chrome mit Befehlszeilenargumenten startet.
Starten Sie Automator und wählen Sie, um eine Anwendung zu erstellen . Doppelklicken Sie im Ordner Library / Utilities auf Run Shell Script, und ersetzen Sie den Textinhalt - - durch Folgendes:cat
open -a "Google Chrome.app" --args -pinned-tab-count=4
# keep the .app suffix or will break with Parallels
Speichern Sie, wo immer Sie möchten.
Um diese Anwendung das Symbol zu ersetzen, Get Info auf Ihrem realen Google Chrome, klicken Sie auf das Symbol oben links drücken Cmd-C
, Get Info auf Ihrem Chrome Automator App, klicken Sie auf das Symbol, und drücken Sie Cmd-V
.
Da es sich um eine andere Anwendung handelt, werden im Dock zwei Chrome-Anwendungen angezeigt, wenn sie ausgeführt werden: Chrome und Ihr Chrome-Launcher.
Option 2 : Bearbeiten Sie Ihr Anwendungspaket, um stattdessen ein Skript zu starten. Dieses Skript startet die eigentliche Anwendung und fügt das Befehlszeilenargument hinzu.
Klicken Sie mit der rechten Maustaste Google Chrome.app
und wählen Sie Paketinhalt anzeigen . Zum Contents/
und öffnen Info.plist
in Property List Editor / Xcode (Apples Entwickler - Tools) oder einem Dritten plist
Editor.
Suchen Sie nach dem Eintrag CFBundleExecutable
oder Executable File
. Merke dir seinen Wert (zB firefox-bin
für Firefox). Ersetzen Sie es durch parameterized-app.sh
.
Öffnen Sie das Terminal und geben Sie Folgendes ein:
touch /Applications/Firefox.app/Contents/MacOS/parameterized-app.sh
open /Applications/Firefox.app/Contents/MacOS/parameterized-app.sh
Ein Editor für die .sh
Datei wird geöffnet. Stellen Sie den Inhalt der Datei auf:
#!/usr/bin/env bash
exec /Applications/Firefox.app/Contents/MacOS/firefox-bin -ProfileManager
(Verwenden Sie den Namen der tatsächlichen ausführbaren Datei, von der Sie sie entfernt haben Info.plist
, und fügen Sie die gewünschten Befehlszeilenargumente hinzu.)
Speichern und schließen. Geben Sie im Terminal Folgendes ein:
chmod +x /Applications/Firefox.app/Contents/MacOS/parameterized-app.sh
Schließen Sie jetzt Terminal und verschieben Sie Ihre Anwendung (die jetzt nicht ausgeführt werden muss) in einen anderen Ordner und wieder zurück. Dadurch werden die Launch Services aktualisiert , andernfalls werden Ihre Änderungen ignoriert und irritieren Sie ungemein.
Wenn Sie jetzt Ihre Anwendung öffnen, wird die .sh
Datei tatsächlich ausgeführt , wodurch die eigentliche ausführbare Datei gestartet und die Befehlszeilenargumente gesendet werden.
Es wird so aussehen und sich so verhalten, wie Sie es erwarten, aber Sie müssen dies jedes Mal wiederholen, wenn Sie Ihre Anwendung aktualisieren, da dies im Allgemeinen das Anwendungspaket und alle von Ihnen vorgenommenen Änderungen ersetzt.
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -f /Applications/Hello\ World.app
Sie könnten ein Skript schreiben, mit dem Chrome gestartet wird, das jedoch nicht das Anwendungssymbol im Dock ist. Dadurch würde ein separates Chrome-Symbol angezeigt. Sie müssen also ein Anwendungspaket erstellen.
Erstellen Sie zunächst eine Kopie Ihrer Chrome-App. Dann gibt es zwei Ansätze, die funktionieren könnten; Ich bin mir nicht sicher, welches mit Mac OS X und / oder dem Selbst-Update von Chrome besser funktioniert.
Erstellen Sie einen "Launcher", der Chrome nur mit den Argumenten aufruft.
Löschen Sie im MacOS-Ordner die ausführbare Datei "Google Chrome" und ersetzen Sie sie durch ein Shell-Skript, das das echte Chrome aufruft:
Vergiss
chmod +x
das Drehbuch nicht.Ändern Sie das Chrome-Paket, das Sie tatsächlich ausführen.
Benennen Sie im MacOS-Ordner "Google Chrome" um und schreiben Sie ein Shell-Skript, das die reale Sache mit den zusätzlichen Argumenten aufruft:
CodeResources
und / oder löschen_CodeSignature
, damit es mit diesen Änderungen ausgeführt wird.Dies alles basiert auf meinem Verständnis der Mac-App-Pakete. Ich habe diese Änderungen nicht speziell auf Chrome getestet. Es ist sogar möglich, dass die ausführbare Chrome-Datei auf dem Mac diese Option nicht unterstützt, da Mac-Anwendungen im Allgemeinen nicht mit steuerbaren Befehlszeilenoptionen ausgeführt werden sollen (im Gegensatz zu Windows, wo Anwendungen normalerweise über Verknüpfungen gestartet werden, die dies können) eingebettete Optionen haben).
quelle
chmod 755 Google\ Chrome
(Ihr Skript) nicht vergessen, nachdem Sie fertig sind. Ich habe mein Skript "launch.sh" genannt und es mit "Google \ Chrome" verknüpft, um Updates zu vereinfachen.