15 votes

Raccourcis clavier "onglets de recherche" de Safari

La nouvelle fonction "onglets de recherche" de Safari 8 est plutôt intéressante. Lorsque l'option "Afficher tous les onglets" est activée, vous pouvez taper du texte pour filtrer les onglets et trouver celui que vous voulez. Cependant, une fois qu'un seul onglet est visible, il serait très Ce serait 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é, je suis donc obligé de cliquer sur l'onglet avec ma souris ! Cela semble être un oubli, je ne peux pas croire qu'Apple ajouterait un moyen agréable de filtrer les onglets, mais aucun moyen d'en sélectionner un !

Capture d'écran :

enter image description here

4voto

Paul A. Points 131

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

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

Cela me pousse à croire qu'il s'agit vraiment d'un oubli de la part d'Apple.

Kludge : Créer une commande Automator pour simuler un clic de souris

J'ai utilisé un code que j'ai trouvé à https://discussions.apple.com/thread/3708948 pour assembler les AppleScripts suivants :

Tentative 1 : N'a pas fonctionné J'ai exécuté ce code dans un Applescript enveloppé dans un service Automator mappé à "Command+Shift+Option+Control+Space", en utilisant les chiffres que j'obtiens en appuyant sur "Command+Control+Shift+4" pour obtenir l'adresse de la zone (600 pixels horizontalement à partir de la gauche, 300 pixels verticalement à partir du haut), et cela fonctionnait dans Safari normal (en appuyant sur la combinaison de touches, la souris cliquait à cette adresse de pixel), mais cela n'avait aucun effet lorsque la même commande était exécutée 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 : Fonctionne, mais n'est pas réalisable

J'ai réussi à faire fonctionner une commande clé avec l'Applescript suivant enveloppé dans un service Automator, mais il a fallu 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

3voto

betoharres Points 131

Je pense que j'ai eu votre réponse. J'ai passé toute la journée à la chercher. J'utilise une super application gratuite appelée BetterTouchTool (sous OS X 10.10) pour ajouter des gestes et des raccourcis supplémentaires à tous les appareils Apple, et ça marche instantanément ! Aucun délai !

Je vais faire des captures d'écran avec chaque étape que vous devez configurer. NOTE : Il liera la position de la souris comme un raccourci clavier de votre choix lorsque vous utilisez safari. Inconvénients : Vous ne pouvez pas changer la position de la fenêtre de safari, et la position de la souris sera différente 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écharger l'application http://www.bettertouchtool.net

  • 2 Ouvrez l'application, sélectionnez le clavier, ajoutez une application à la liste des raccourcis que vous allez ajouter (dans ce cas, Safari), choisissez votre raccourci (je sélectionne "Option + 1" dans cette capture d'écran), puis, dans le menu de sélection des déclencheurs, sélectionnez " Déplacer la souris vers une position " dans les "Autres actions Mouser". J'ai marqué la mauvaise option dans la capture d'écran, c'est l'option au-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. enter image description here

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

enter image description here

  • 4 Ajouter un événement suivant : Un événement de clic gauche. Et c'est tout ! enter image description here

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 changera si les résultats sont plus grands, parfois même en cachant le premier résultat.

3voto

Thomas A. Fine Points 21

J'ai utilisé Applescript pour faire cela bien avant qu'ils n'ajoutent cette fonctionnalité :

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

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

(J'ai un script similaire pour trouver Terminal Windows).

0voto

user1337 Points 3734

Je suis un peu en retard pour la fête, mais je pense que Shortcat effectuera la fonctionnalité nécessaire.

Avec en prime la possibilité de l'utiliser avec Mail, etc.

0voto

LearnOPhile Points 111

Utilisez Automator et collez l'AppleScript en l'attachant à un raccourci clavier comme décrit dans la section :

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

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X