Skróty klawiaturowe Safari „Karty wyszukiwania”

12

Nowa funkcja „Search Tabs” w Safari 8 jest całkiem niezła. Po aktywowaniu opcji „pokaż wszystkie karty” możesz wpisać tekst, aby przefiltrować karty według potrzeb. Jednak, gdy mam jedną kartę widoczną, byłoby bardzo miło być w stanie aktywować tę kartę. Umożliwiłoby to funkcjonalność typu „wyróżnionego” dla kart.

Wydaje się jednak, że nie ma skrótu klawiaturowego do aktywacji karty po jej wyszukaniu, więc jestem zmuszony kliknąć kartę myszką! To wydaje się niedopatrzeniem, nie mogę uwierzyć, że Apple dodałoby dobry sposób na filtrowanie kart, ale nie ma możliwości wybrania jednej!

Zrzut ekranu:

wprowadź opis zdjęcia tutaj

SamBeran
źródło
Wiem, że jest to całkowicie nieprzydatne, ale wierzę, że by to zrobili. : P Zwłaszcza biorąc pod uwagę, że ... ogólnie niektóre krawędzie Yosemite są.
tubedogg
Coś nowego na ten temat? Minęło kilka miesięcy i problem ten nadal występuje :(
dvcrn
Ten widok „Pokaż wszystkie karty” z wyszukiwaniem jest teraz dostępny dla wszystkich aplikacji korzystających z kart natywnych w High Sierra.
Steve Moser,

Odpowiedzi:

3

Próbowałem wykonać następujące kombinacje klawiszy bezskutecznie:

  • Command + Return ... + Space
  • Opcja + Return ... + Spacja
  • Control + Return ... + Space
  • Command + Shift + \ (polecenie „Pokaż wszystkie karty” na moim Macbooku)

To prowadzi mnie do przekonania, że ​​to naprawdę niedopatrzenie ze strony Apple.

Kludge: Utwórz polecenie Automatora, aby zasymulować kliknięcie myszą

Użyłem kodu, który znalazłem na https://discussions.apple.com/thread/3708948, aby zebrać następujące skrypty AppleScript:

Próba 1: Nie działałem Uruchomiłem ten kod w Applecript owiniętym w usłudze Automator zamapowanej na „Command + Shift + Opcja + Control + Spacja”, używając liczb, które otrzymałem po naciśnięciu „Command + Control + Shift + 4”, aby uzyskaj adres dla obszaru (600 pikseli w poziomie od lewej, 300 pikseli w pionie od góry) i działałoby to w normalnym Safari (naciśnięcie kombinacji klawiszy spowodowałoby kliknięcie myszą na ten adres w pikselach), ale nie działało, gdy to samo polecenie klawisza zostało uruchomione w trybie „Pokaż wszystkie karty” w Safari!

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

        return input
    end run

Próba nr 2: zadziałało, ale nie jest możliwe

Dostałem kluczową komendę pracującą z następującym Applecript zawiniętym w usługę Automator, ale jej ukończenie zajęło 5.125 sekundy :(

    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
Josh
źródło
Na razie zaznaczę to jako „najlepszą odpowiedź”, ponieważ jest to dość dokładne podejście do tematu i pokazuje, że jest to prawie niemożliwe. Dziękuję Ci.
SamBeran
Nieco nieporadne obejście polega na wybraniu karty za pomocą Shortcat .
Adam Lindberg,
3

Chyba mam twoją odpowiedź. Cały dzień szukałem tego. Korzystam ze wspaniałej bezpłatnej aplikacji o nazwie BetterTouchTool (używającej OS X 10.10), aby dodawać dodatkowe gesty i skróty do wszystkich urządzeń Apple i działa natychmiast! Bez opóźnień!

Zrobię zrzuty ekranu z każdym krokiem, który musisz skonfigurować. UWAGA: Powiąże pozycję myszy jako wybrany skrót klawiaturowy podczas korzystania z safari. Wady: nie można zmienić pozycji okna safari, a pozycja myszy będzie inna niż na monitorze w notebooku. Rozwiązanie: Zalecam mapowanie pozycji myszy za pomocą pełnego ekranu z najczęściej używanym ekranem (lub po prostu mapowanie dwóch skrótów dla każdego ekranu)

  • 1 Pobierz aplikację http://www.bettertouchtool.net

  • 2 Otwórz aplikację, wybierz klawiaturę, dodaj aplikację do listy do skrótów, które dodasz (w tym przypadku Safari), wybierz skrót (mapuję „Option + 1” na tym zrzucie ekranu), a następnie wewnątrz wyzwalacza wybierz wybierz „ Przenieś mysz do pozycji ” w „Innych czynnościach użytkownika”. Zaznaczyłem niewłaściwą opcję na zrzucie ekranu, jest to opcja powyżej. To NIE jest „Zapisz pozycję myszy”. Przepraszam, jestem zbyt zmęczony, jest trzecia i muszę jutro pracować wprowadź opis zdjęcia tutaj

  • 3 Wybierz miejsce, w którym ma się poruszać kursor (pozycja w polu wprowadzania sprawdzi pierwszy wynik, gdy interfejs wyświetla ~ 3 wyniki)

wprowadź opis zdjęcia tutaj

  • 4 Dodaj następujące wydarzenie: Wydarzenie kliknięcia lewym przyciskiem. I to wszystko! wprowadź opis zdjęcia tutaj

Zrób to samo z inną pozycją myszy, aby uzyskać wynik 2., 3., ale pamiętaj, że interfejs użytkownika zmieni się, jeśli większe wyniki, czasem nawet ukrywając pierwszy wynik.

betoharres
źródło
Zmieniłem mapę shift+command+\ do command+d. Więc po prostu command+d command+f pisz tutaj tekst command+d.
Dzh
2

Używam do tego Applescript, ponieważ dodali tę funkcję:

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

Wyskakuje okno dialogowe wyszukiwania, wpisujesz wyszukiwanie i natychmiast aktywuje pojedynczą pasującą kartę lub daje okno dialogowe do wyboru z listy pasujących kart. Przesuwa okno do przodu i czyni z niego aktywną kartę w oknie.

(Mam podobny skrypt do wyszukiwania okien terminala).

Thomas A. Fine
źródło
Bardzo fajny; Myślę, że spróbuję tego. Jeśli to rozumiem, wygląda na to, że twój skrypt przeszukuje wszystkie otwarte okna, zamiast tylko bieżącego. Czy to jest poprawne? Chciałbym, aby ta funkcja nie była dostępna w zwykłym wyszukiwaniu.
krs013,
0

Jestem trochę spóźniony na imprezę, ale myślę, że Shortcat wykona niezbędną funkcjonalność.

Z dodatkową premią, dzięki której można go używać z pocztą itp.

arin
źródło
0

Użyj Automatora i wklej AppleScript dołączając go do skrótu klawiaturowego, jak opisano w:

Jak przypisać skrót klawiaturowy do napisanego kodu AppleScript?

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
LearnOPhile
źródło