Scorciatoie da tastiera "Cerca schede" Safari


12

La nuova funzione "Schede di ricerca" di Safari 8 è piuttosto carina. Quando "mostra tutte le schede" è attivato, è possibile digitare del testo per filtrare le schede in base a quella desiderata. Tuttavia, una volta che ho una singola scheda visibile, sarebbe molto bello poter attivare quella scheda. Ciò consentirebbe la funzionalità di tipo "riflettori" per le schede.

Tuttavia, non sembra che ci sia una scorciatoia da tastiera per attivare la scheda dopo averla cercata, quindi sono costretto a fare clic sulla scheda con il mouse! Sembra una svista, non posso credere che Apple aggiungerebbe un modo carino per filtrare le schede, ma non c'è modo di selezionarne una!

Immagine dello schermo:

inserisci qui la descrizione dell'immagine


So che è del tutto inutile, ma posso credere che lo farebbero. : P Soprattutto dato come ... alcuni bordi di Yosemite sono in generale.
tubedogg,

C'è qualcosa di nuovo in questo? Sono passati alcuni mesi e questo problema sembra ancora persistere :(
dvcrn,

Questa vista "Mostra tutte le schede" con la ricerca è ora disponibile per tutte le app che utilizzano schede native in High Sierra.
Steve Moser,

Risposte:


3

Ho provato le seguenti combinazioni di tasti nel tentativo di farlo, senza alcun risultato:

  • Comando + Ritorna ... + Spazio
  • Opzione + Ritorna ... + Spazio
  • Control + Return ... + Space
  • Comando + Maiusc + \ (Il comando "Mostra tutte le schede" sul mio Macbook)

Questo mi porta a credere che sia davvero una svista da parte di Apple.

Kludge: crea un comando automatore per simulare un clic del mouse

Ho usato il codice che ho trovato su https://discussions.apple.com/thread/3708948 per mettere insieme i seguenti script Apple:

Tentativo 1: non ha funzionato Ho eseguito questo codice in un Applescript racchiuso in un servizio di automazione mappato su "Comando + Maiusc + Opzione + Controllo + Spazio", utilizzando i numeri che ottengo premendo "Comando + Controllo + Maiusc + 4" per ottenere l'indirizzo per l'area (600 pixel in orizzontale da sinistra, 300 pixel in verticale dall'alto) e funzionerebbe nel normale Safari (premendo la combinazione di tasti farebbe clic con il mouse su quell'indirizzo di pixel), ma non ha avuto effetto quando il lo stesso comando chiave è stato eseguito nella modalità "Mostra tutte le schede" in Safari!

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

        return input
    end run

Tentativo n. 2: funzionato , ma non fattibile

Ho ricevuto un comando chiave che funziona con il seguente Applescript racchiuso in un servizio di automatore, ma ci sono voluti 5.125 secondi per completare :(

    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

Lo segnerò come "migliore risposta" per ora, dal momento che è un trattamento abbastanza approfondito sull'argomento, e dimostra che è praticamente impossibile. Grazie.
SamBeran,

Un po 'ingombrante è usare Shortcat per selezionare la scheda.
Adam Lindberg,

3

Penso di aver ottenuto la tua risposta. Ho passato tutto il giorno a cercarlo. Uso una fantastica app gratuita chiamata BetterTouchTool (usando OS X 10.10) per aggiungere gesti e scorciatoie adizionali a tutti i dispositivi Apple, e funziona istantaneamente! Nessun ritardo!

Realizzerò schermate con ogni passaggio che devi configurare. NOTA: vincolerà la posizione del mouse come scelta rapida da tastiera quando si utilizza Safari. Lati negativi: non è possibile modificare la posizione della finestra di Safari e la posizione del mouse sarà diversa dal monitor del notebook. Soluzione: ti consiglio di mappare la posizione del mouse utilizzandola a schermo intero con lo schermo che usi più spesso (o semplicemente mappa due scorciatoie per ogni schermo)

  • 1 Scarica l'app http://www.bettertouchtool.net

  • 2 Apri l'app, seleziona la tastiera, aggiungi un'app per elencare le scorciatoie che aggiungerai (in questo caso Safari), scegli la scorciatoia (sto mappando "Opzione + 1" in questa schermata), quindi, all'interno del Trigger seleziona selezionare " Sposta il mouse in posizione " nel "Altre azioni Mouser". Ho segnato l'opzione sbagliata nello screenshot, è l'opzione sopra. NON è "Salva posizione del mouse". Scusa, sono troppo stanco, sono le 3 del mattino e domani devo lavorare inserisci qui la descrizione dell'immagine

  • 3 Scegli dove vuoi che si trovi il cursore (La posizione nella casella di input controllerà il primo risultato quando l'interfaccia utente mostra ~ 3 risultati)

inserisci qui la descrizione dell'immagine

  • 4 Aggiungi un evento seguente: Un evento clic sinistro. E questo è tutto! inserisci qui la descrizione dell'immagine

Fai lo stesso con una diversa posizione del mouse per ottenere il 2 °, 3 ° risultato .. ma tieni presente che l'interfaccia utente cambierà se risultati più grandi, a volte nascondono persino il primo risultato.


Ho rimappato shift+command+\ a command+d. Quindi fai semplicemente un command+d command+f sms qui command+d.
Dzh

2

Uso Applescript per farlo da prima che aggiungessero questa funzione:

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

Si apre una finestra di dialogo di ricerca, si inserisce la ricerca e attiva immediatamente una singola scheda di corrispondenza o ti dà una finestra di dialogo per selezionare da un elenco di schede corrispondenti. Porta la finestra in primo piano e rende questa la scheda attiva nella finestra.

(Ho uno script simile per trovare le finestre di Terminale.)


Molto bello; Penso che ci proverò. Se lo capisco, sembra che il tuo script cerchi anche tutte le finestre aperte, anziché solo quella corrente. È corretto? Questa è una caratteristica che vorrei che la ricerca normale non avesse.
krs013,

0

Sono un po 'in ritardo alla festa, ma penso che Shortcat eseguirà le funzionalità necessarie.

Con il bonus aggiunto tale che può essere utilizzato con Mail, ecc.


0

Usa Automator e incolla AppleScript collegandolo a una scorciatoia da tastiera come descritto in:

Come posso assegnare una scorciatoia da tastiera a un AppleScript che ho scritto?

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
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.