Tastaturkürzel für Safari-Suchregisterkarten


12

Die neue Funktion "Tabs suchen" von Safari 8 ist ziemlich nett. Wenn "Alle Registerkarten anzeigen" aktiviert ist, können Sie Text eingeben, um die Registerkarten nach der gewünschten zu filtern. Sobald ich jedoch eine einzelne Registerkarte sichtbar habe, wäre es sehr schön, diese Registerkarte aktivieren zu können. Dies würde Funktionen vom Typ "Spotlight" für Registerkarten ermöglichen.

Es scheint jedoch nicht so, als gäbe es eine Tastenkombination zum Aktivieren der Registerkarte, sobald ich danach gesucht habe. Daher bin ich gezwungen, mit der Maus auf die Registerkarte zu klicken! Dies scheint ein Versehen zu sein. Ich kann nicht glauben, dass Apple eine gute Möglichkeit zum Filtern der Registerkarten hinzufügen würde, aber keine Möglichkeit, eine auszuwählen!

Bildschirmfoto:

Geben Sie hier die Bildbeschreibung ein


Ich weiß, dass dies völlig wenig hilfreich ist, aber ich kann glauben, dass sie das tun würden. : P Besonders wenn man bedenkt, wie ... rau einige Kanten von Yosemite im Allgemeinen sind.
Tubedogg

Irgendwas Neues dazu? Es ist ein paar Monate her und dieses Problem scheint immer noch zu bestehen :(
dvcrn

Diese Ansicht "Alle Registerkarten anzeigen" mit Suche ist jetzt für alle Apps verfügbar, die native Registerkarten in High Sierra verwenden.
Steve Moser

Antworten:


3

Ich habe die folgenden Tastenkombinationen ausprobiert, um dies ohne Wirkung zu tun:

  • Befehl + Zurück ... + Leertaste
  • Option + Zurück ... + Leerzeichen
  • Strg + Zurück ... + Leertaste
  • Befehl + Umschalt + \ (Der Befehl "Alle Registerkarten anzeigen" auf meinem Macbook)

Dies lässt mich glauben, dass es wirklich ein Versehen von Apple ist.

Kludge: Erstellen Sie einen Automator-Befehl, um einen Mausklick zu simulieren

Ich habe Code verwendet, den ich unter https://discussions.apple.com/thread/3708948 gefunden habe , um die folgenden AppleScripts zusammenzustellen:

Versuch 1: Hat nicht funktioniert Ich habe diesen Code in einem Applescript ausgeführt, das in einem Automator-Dienst enthalten ist, der "Befehl + Umschalt + Option + Strg + Leertaste" zugeordnet ist, wobei ich die Zahlen verwendet habe, die ich durch Drücken von "Befehl + Strg + Umschalt + 4" erhalten habe Holen Sie sich die Adresse für den Bereich (600 Pixel horizontal von links, 300 Pixel vertikal von oben), und es würde in normaler Safari funktionieren (durch Drücken der Tastenkombination würde die Maus auf diese Pixeladresse klicken), aber es hatte keine Auswirkung, wenn die Der gleiche Tastenbefehl wurde in Safari im Modus "Alle Registerkarten anzeigen" ausgeführt!

on run {input, parameters}
    tell application "System Events"
            tell process "Safari"
                click at {600, 300}
            end tell
        end tell

        return input
    end run

Versuch Nr. 2: Arbeitete, aber nicht machbar

Ich habe einen Schlüsselbefehl erhalten, der mit dem folgenden Applescript funktioniert, das in einen Automator-Dienst eingebunden ist, aber der Vorgang dauerte 5,125 Sekunden :(

    on run {input, parameters}

    set x to 600
    set y to 150

    do shell script "
/usr/bin/python <<END
import sys
import time
from Quartz.CoreGraphics import *
def mouseEvent(type, posx, posy):
          theEvent = CGEventCreateMouseEvent(None, type, (posx,posy), kCGMouseButtonLeft)
          CGEventPost(kCGHIDEventTap, theEvent)
def mousemove(posx,posy):
          mouseEvent(kCGEventMouseMoved, posx,posy);
def mouseclick(posx,posy):
          mouseEvent(kCGEventLeftMouseDown, posx,posy);
          mouseEvent(kCGEventLeftMouseUp, posx,posy);
ourEvent = CGEventCreate(None);
currentpos=CGEventGetLocation(ourEvent);             # Save current mouse position
mouseclick(" & x & "," & y & ");
mousemove(int(currentpos.x),int(currentpos.y));      # Restore mouse position
END"
    return input
end run

Ich werde dies vorerst als "beste Antwort" markieren, da es eine ziemlich gründliche Behandlung zu diesem Thema ist und zeigt, dass es so gut wie unmöglich ist. Vielen Dank.
SamBeran

Eine etwas umständliche Problemumgehung besteht darin, Shortcat zum Auswählen der Registerkarte zu verwenden.
Adam Lindberg

3

Ich glaube ich habe deine Antwort bekommen. Ich habe den ganzen Tag danach gesucht. Ich verwende eine großartige kostenlose App namens BetterTouchTool (unter OS X 10.10), um allen Apple-Geräten zusätzliche Gesten und Verknüpfungen hinzuzufügen, und sie funktioniert sofort! Keine Verzögerung!

Ich werde mit jedem Schritt, den Sie konfigurieren müssen, Screenshots machen. HINWEIS: Wenn Sie eine Safari verwenden, wird die Mausposition als Tastenkombination Ihrer Wahl gebunden. Nachteile: Sie können die Fensterposition der Safari nicht ändern, und die Position der Maus unterscheidet sich vom Monitor Ihres Notebooks. Lösung: Ich empfehle, die Mausposition im Vollbildmodus dem Bildschirm zuzuordnen, den Sie am häufigsten verwenden (oder nur zwei Verknüpfungen für jeden Bildschirm zuzuordnen).

  • 1 Laden Sie die App http://www.bettertouchtool.net herunter

  • 2 Öffnen Sie die App, wählen Sie die Tastatur aus, fügen Sie eine App zur Liste der hinzuzufügenden Verknüpfungen hinzu (in diesem Fall Safari), wählen Sie Ihre Verknüpfung (ich ordne "Option + 1" in diesem Screenshot zu) und wählen Sie dann in der Trigger-Auswahl Wählen Sie im Menü "Andere Mausaktionen" die Option " Maus in Position bewegen ". Ich habe im Screenshot die falsche Option markiert, es ist die obige Option. Es ist NICHT "Mausposition speichern". Entschuldigung, ich bin zu müde, es ist 3 Uhr morgens und ich muss morgen arbeiten Geben Sie hier die Bildbeschreibung ein

  • 3 Wählen Sie aus, wohin der Cursor gehen soll (Die Position im Eingabefeld überprüft das erste Ergebnis, wenn auf der Benutzeroberfläche ~ 3 Ergebnisse angezeigt werden.)

Geben Sie hier die Bildbeschreibung ein

  • 4 Fügen Sie ein folgendes Ereignis hinzu: Ein Ereignis mit Linksklick. Und das ist es! Geben Sie hier die Bildbeschreibung ein

Machen Sie dasselbe mit einer anderen Mausposition, um das 2., 3. .. Ergebnis zu erhalten, aber denken Sie daran, dass sich die Benutzeroberfläche bei größeren Ergebnissen ändert und manchmal sogar das erste Ergebnis verbirgt.


Ich habe neu zugeordnet shift+command+\ zu command+d. Dann machst du einfach command+d command+f Text hier command+d.
Dzh

2

Ich habe Applescript verwendet, um dies zu tun, bevor sie diese Funktion hinzugefügt haben:

http://hea-www.harvard.edu/~fine/OSX/safari-tabs.html

Es öffnet sich ein Suchdialog, Sie geben Ihre Suche ein und es aktiviert sofort eine einzelne übereinstimmende Registerkarte oder es gibt Ihnen einen Dialog, den Sie aus einer Liste übereinstimmender Registerkarten auswählen können. Es bringt das Fenster nach vorne und macht es zur aktiven Registerkarte im Fenster.

(Ich habe ein ähnliches Skript zum Auffinden von Terminalfenstern.)


Sehr cool; Ich denke, ich werde es versuchen. Wenn ich es verstehe, sieht es so aus, als ob Ihr Skript auch alle geöffneten Fenster durchsucht, anstatt nur das aktuelle. Ist das korrekt? Dies ist eine Funktion, die ich gerne hätte, die die normale Suche nicht hat.
krs013

0

Ich bin etwas spät dran , aber ich denke, Shortcat wird die notwendigen Funktionen ausführen.

Mit dem zusätzlichen Bonus, so dass es mit Mail usw. verwendet werden kann.


0

Verwenden Sie Automator und fügen Sie das AppleScript ein, indem Sie es an eine Tastenkombination anhängen, wie in:

Wie ordne ich einem von mir geschriebenen AppleScript eine Tastenkombination zu?

set question to display dialog ("Find Safari tab:") default answer ""
set searchpat to text returned of question

tell application "Safari"
    set winlist to every window
    set winmatchlist to {}
    set tabmatchlist to {}
    set tabnamematchlist to {}
    repeat with win in winlist
        set ok to true
        try
            set tablist to every tab of win
        on error errmsg
            --display dialog name of win as string
            set ok to false
        end try
        if ok then
            repeat with t in tablist
                if searchpat is in (name of t as string) then
                    set end of winmatchlist to win
                    set end of tabmatchlist to t
                    set end of tabnamematchlist to (id of win as string) & "." & (index of t as string) & ".  " & (name of t as string)
                    --display dialog name of t as string
                else if searchpat is in (URL of t as string) then
                    set end of winmatchlist to win
                    set end of tabmatchlist to t
                    set end of tabnamematchlist to (id of win as string) & "." & (index of t as string) & ".  " & (name of t as string)
                    --display dialog name of t as string
                end if
            end repeat
        end if
    end repeat
    if (count of tabmatchlist) = 1 then
        --display dialog "one!"
        set w to item 1 of winmatchlist
        set t to item 1 of tabmatchlist
        set current tab of w to t
        set index of w to 1
    else if (count of tabmatchlist) = 0 then
        display dialog "No matches"
    else
        set whichtab to choose from list of tabnamematchlist with prompt "The following tabs match, please select one:"
        set AppleScript's text item delimiters to "."
        if whichtab is not equal to false then
            set tmp to text items of (whichtab as string)
            set w to (item 1 of tmp) as integer
            set t to (item 2 of tmp) as integer
            set current tab of window id w to tab t of window id w
            set index of window id w to 1
        end if
    end if
end tell
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.