Was ist der beste Weg, um eine globale Tastenkombination zum Öffnen einer Registerkarte in Chrome unter Mac OS X zu konfigurieren?
Vorsichtsmaßnahmen
- Es sollte so einfach wie möglich sein, also möchte ich nicht jedes Mal
<alt><tab>
+<cmd><t>
. - Dies muss global sein . Wenn ich also
<cmd><return>
in Mail.app auf meine Verknüpfung drücke (was zufällig der Fall ist ), muss Chrome nach vorne gebracht und ein neuer Tab geöffnet werden - Es muss die neue Registerkarte öffnen, dh
chrome://newtab
keine Website wiehttp://www.google.com
- Die höchste Priorität ist, dass es schnell und schnell geöffnet wird. Die nächste Priorität ist die einfache Konfiguration
Aktuelle Lösung
Im Moment habe ich Quicksilver.app so konfiguriert, dass das folgende AppleScript (oder
genauer
gesagt Osascript ) ausgeführt wird, wenn ich drücke <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
Das Problem dabei ist, dass es bis zu 5 Sekunden dauern kann, wenn es eine Weile her ist, seit ich es zuletzt ausgeführt habe. Ich hatte dies in eine * .app umgewandelt, aber das war langsamer als es zu einer ausführbaren Datei zu machen osascript
. Ich habe keine Angst davor, eine kompilierte Version des obigen Skripts zu entwickeln, aber ich bin ein UNIX / Web-Entwickler, kein OS X, und ich bin mit dem System nicht vertraut.
~/Library/Scripts
und aktivieren Sie den Menüpunkt "Skripte" in den Einstellungen des AppleScript-Editors. Verwenden Sie es eine Weile nicht und rufen Sie es dann über dieses Menü auf. Ich fürchte, die Verzögerung ist damit verbunden, dass AppleScript geladen werden muss, und dies ist die "reinste" Lösung, die ich mir vorstellen kann (außer das Aufrufen der Skriptanwendung direkt vom Finder aus), um die Ursachen einzugrenzen.Antworten:
Sie können den folgenden Terminal-Befehl ausführen (z. B. in einem Bash-Skript):
Dies führt dazu, dass die Anwendung Google Chrome die URL chrome: // newtab öffnet und dadurch einen neuen Tab öffnet.
Leider registriert Google Chrome den
chrome://
URL-Typ nicht bei Launch Services und es wird angenommen, dass dies ein Dateipfad ist.Um dies zu beheben, klicken Sie mit der rechten Maustaste auf das Anwendungspaket von Google Chrome, wählen Sie Paketinhalt anzeigen , öffnen Sie das Inhaltsverzeichnis und bearbeiten Sie es
Info.plist
in einem Texteditor.Suche nach
CFBundleURLTypes
. Bearbeiten Sie die folgenden Zeilen, um die durch a gekennzeichneten Zeilen hinzuzufügen+
:Speichern und schließen. Verschieben Sie das Anwendungspaket von Google Chrome in ein anderes Verzeichnis und wieder zurück, damit Launch Services die Änderung übernimmt (wenn dies nicht funktioniert, melden Sie sich ab und wieder an).
Führen Sie dann
open
wie am Anfang beschrieben aus.Sobald dies funktioniert, können Sie am besten ein Shell-Skript ausführen, das den
open
Befehl ausführt , der wiederum z. B. von Ihrem Launcher aufgerufen wird. Da ich glaube, dass die Verzögerung durch dasosascript
Laden verursacht wird , sollte so ziemlich jede Lösung, die Sie hier wählen, schnell genug sein.Um die Bearbeitung der
Info.plist
Datei halbautomatisch zu gestalten (Sie müssen dies für alle Chrome-Updates wiederholen), können Sie siePlistBuddy
in Terminal verwenden. Erstellen Sie zunächst eine Dateichrome-url.plist
mit dem folgenden Namen:Anschließend können Sie Chrome wie folgt patchen
Info.plist
:quelle
Info.plist
Datei für jede Chrome-Version wiederholen ./Applications
.Chrome unterstützt jetzt integrierte globale Verknüpfungen, und ich habe die globale Verknüpfungserweiterung für neue Registerkarten erstellt , um sie zu nutzen.
Installieren Sie es, weisen Sie eine Verknüpfung zu und setzen Sie den Bereich auf Global, und Sie erhalten superschnellen Zugriff auf die OmniBar.
quelle
Sie müssen Chrome nicht ständig ändern, wenn Sie AppleEvent direkt eine "Get URL" senden. Benutze das:
quelle
Eine Möglichkeit, dies zu tun, ist über einen Automator-Service:
Testen Sie, indem Sie zu z. B. iTunes wechseln und das Menü "iTunes | Dienste" öffnen. "Focus New Chrome Tab" sollte zusammen mit der von Ihnen ausgewählten Tastenkombination aufgeführt sein. Wenn Sie auf die Tastenkombination klicken, wird eine neue Chrome-Registerkarte angezeigt.
[Beachten Sie, dass es einen Fehler gibt, dass Sie, bevor die "globale" Tastenkombination in einer bestimmten Anwendung funktioniert, das Menü "Dienste" öffnen müssen, was die Verwendung im Moment etwas ärgerlich macht.]
Skript zum Hinzufügen in Schritt (4):
quelle