Raccourcis clavier des «onglets de recherche» de Safari

12

La nouvelle fonctionnalité "Search Tabs" de Safari 8 est plutôt sympa. Lorsque "afficher tous les onglets" est activé, vous pouvez taper du texte pour filtrer les onglets en celui que vous souhaitez. Cependant, une fois que j'ai un seul onglet visible, ce serait très bien de pouvoir activer cet onglet. Cela permettrait une fonctionnalité de type "spotlight" pour les onglets.

Cependant, il ne semble pas y avoir de raccourci clavier pour activer l'onglet une fois que je l'ai recherché, donc je suis obligé de cliquer sur l'onglet avec ma souris! Cela semble être un oubli, je ne peux pas croire qu'Apple ajouterait une belle façon de filtrer les onglets, mais aucun moyen d'en sélectionner un!

Capture d'écran:

entrez la description de l'image ici

SamBeran
la source
Je sais que cela ne sert à rien, mais je peux croire qu'ils le feraient. : P Surtout étant donné la façon dont ... certains bords de Yosemite sont rugueux en général.
tubedogg
Quelque chose de nouveau à ce sujet? Cela fait quelques mois et ce problème semble persister :(
dvcrn
Cette vue "Afficher tous les onglets" avec recherche est désormais disponible pour toutes les applications qui utilisent des onglets natifs dans High Sierra.
Steve Moser

Réponses:

3

J'ai essayé les combinaisons de touches suivantes pour tenter de le faire, sans effet:

  • Commande + Retour ... + Espace
  • Option + Retour ... + Espace
  • Contrôle + Retour ... + Espace
  • Commande + Maj + \ (la commande "Afficher tous les onglets" sur mon Macbook)

Cela m'amène à croire qu'il s'agit vraiment d'une erreur de la part d'Apple.

Kludge: créer une commande automatique pour simuler un clic de souris

J'ai utilisé le code que j'ai trouvé sur https://discussions.apple.com/thread/3708948 pour rassembler les AppleScripts suivants:

Tentative 1: n'a pas fonctionné J'ai exécuté ce code dans un Applescript enveloppé dans un service Automator mappé sur "Commande + Maj + Option + Contrôle + Espace", en utilisant les chiffres que j'obtiens en appuyant sur "Commande + Contrôle + Maj + 4" pour obtenir l'adresse de la zone (600 pixels horizontaux à partir de la gauche, 300 pixels verticaux à partir du haut), et cela fonctionnerait dans Safari normal (appuyer sur la combinaison de touches ferait cliquer la souris à cette adresse pixel), mais cela n'avait aucun effet lorsque le le même raccourci clavier a été exécuté en mode "Afficher tous les onglets" dans Safari!

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

        return input
    end run

Tentative n ° 2: a fonctionné , mais n'est pas réalisable

J'ai obtenu un raccourci clavier fonctionnant avec l'Applescript suivant enveloppé dans un service Automator, mais cela a pris 5,125 secondes pour terminer :(

    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
la source
Je vais marquer cela comme "meilleure réponse" pour l'instant, car c'est un traitement assez approfondi sur le sujet, et montre que c'est à peu près impossible. Je vous remercie.
SamBeran
Une solution de contournement un peu maladroite consiste à utiliser Shortcat pour sélectionner l'onglet.
Adam Lindberg
3

Je pense avoir obtenu votre réponse. J'ai passé toute la journée à chercher ça. J'utilise une excellente application gratuite appelée BetterTouchTool (utilisant OS X 10.10) pour ajouter des gestes et des raccourcis supplémentaires à tous les appareils Apple, et cela fonctionne instantanément! Sans délais!

Je ferai des captures d'écran à chaque étape que vous devrez configurer. REMARQUE: Il liera la position de la souris comme raccourci clavier de votre choix lorsque vous utilisez Safari. Inconvénients: vous ne pouvez pas modifier la position de la fenêtre de safari, et la position de la souris sera différente de celle du moniteur de votre ordinateur portable. Solution: je recommande de mapper la position de la souris en l'utilisant en plein écran avec l'écran que vous utilisez le plus souvent (ou simplement de mapper deux raccourcis pour chaque écran)

  • 1 Téléchargez l'application http://www.bettertouchtool.net

  • 2 Ouvrez l'application, sélectionnez le clavier, ajoutez une application à la liste des raccourcis que vous ajouterez (dans ce cas Safari), choisissez votre raccourci (je mappe "Option + 1" dans cette capture d'écran), puis, dans le déclencheur, sélectionnez menu, sélectionnez " Déplacer la souris vers la position " dans les "Autres actions Mouser". J'ai marqué la mauvaise option dans la capture d'écran, c'est l'option ci-dessus. Ce n'est PAS "Enregistrer la position de la souris". Désolé je suis trop fatigué, il est 3 heures du matin et je dois travailler demain entrez la description de l'image ici

  • 3 Choisissez où vous voulez que le curseur aille (la position dans la zone de saisie vérifiera le premier résultat lorsque l'interface utilisateur affiche ~ 3 résultats)

entrez la description de l'image ici

  • 4 Ajoutez un événement suivant: Un événement de clic gauche. Et c'est tout! entrez la description de l'image ici

Faites de même avec une position différente de la souris pour obtenir le 2ème, 3ème .. résultat mais gardez à l'esprit que l'interface utilisateur changera si des résultats plus importants, masquant parfois même le premier résultat.

betoharres
la source
J'ai remappé shift+command+\ à command+d. Alors, vous faites simplement du command+d command+f texte ici command+d.
Dzh
2

J'utilise Applescript pour ce faire depuis avant d'ajouter cette fonctionnalité:

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

Il affiche une boîte de dialogue de recherche, vous entrez votre recherche et il active immédiatement un seul onglet correspondant, ou vous donne une boîte de dialogue pour sélectionner dans une liste d'onglets correspondants. Il met la fenêtre en avant et en fait l'onglet actif dans la fenêtre.

(J'ai un script similaire pour trouver des fenêtres de terminal.)

Thomas A. Fine
la source
Très cool; Je pense que je vais essayer ça. Si je comprends bien, il semble que votre script recherche également toutes les fenêtres ouvertes, au lieu de seulement la fenêtre actuelle. Est-ce exact? C'est une fonctionnalité que j'aimerais que la recherche normale n'ait pas.
krs013
0

Je suis un peu en retard à la fête, mais je pense que Shortcat effectuera les fonctionnalités nécessaires.

Avec le bonus supplémentaire tel qu'il peut être utilisé avec Mail, etc.

arin
la source
0

Utilisez Automator et collez le AppleScript en le fixant à un raccourci clavier comme décrit dans:

Comment attribuer un raccourci clavier à un AppleScript que j'ai écrit?

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
la source