Atalhos de teclado do Safari "Guias de pesquisa"


12

O novo recurso "Guias de pesquisa" do Safari 8 é muito bom. Quando a opção "mostrar todas as guias" estiver ativada, você poderá digitar algum texto para filtrar as guias para a desejada. No entanto, quando eu tiver uma única guia visível, seria muito bom poder ativar essa guia. Isso permitiria a funcionalidade do tipo "spotlight" para guias.

No entanto, parece que não há um atalho de teclado para ativar a guia depois que eu a procurei, então sou forçado a clicar na guia com o mouse! Parece um descuido, não acredito que a Apple possa adicionar uma boa maneira de filtrar as guias, mas não há como selecionar uma!

Captura de tela:

insira a descrição da imagem aqui


Eu sei que isso é completamente inútil, mas posso acreditar que eles fariam isso. : P Especialmente considerando o quão ... ásperas algumas das bordas de Yosemite são em geral.
precisa saber é o seguinte

Alguma novidade nisso? Já se passaram alguns meses e esse problema ainda parece persistir :(
dvcrn

A visualização "Mostrar todas as guias" com a pesquisa agora está disponível para todos os aplicativos que usam guias nativas no High Sierra.
18717 Steve Moser

Respostas:


3

Eu tentei as seguintes combinações de teclas na tentativa de fazer isso, sem efeito:

  • Comando + Retorno ... + Espaço
  • Option + Return ... + Espaço
  • Control + Return ... + Espaço
  • Command + Shift + \ (o comando "Mostrar todas as guias" no meu Macbook)

Isso me leva a acreditar que realmente é uma supervisão da parte da Apple.

Kludge: Criar um comando do Automator para simular um clique do mouse

Usei o código encontrado em https://discussions.apple.com/thread/3708948 para montar os seguintes AppleScripts:

Tentativa 1: Não funcionou Executei esse código em um Applescript envolvido em um Serviço de Automator mapeado para "Command + Shift + Option + Control + Space", usando os números que obtive ao pressionar "Command + Control + Shift + 4" para obter o endereço da área (600 pixels na horizontal da esquerda, 300 pixels na vertical da parte superior) e funcionaria no Safari normal (pressionar a combinação de teclas faria o mouse clicar nesse endereço de pixel), mas não teve efeito quando o O mesmo comando de tecla foi executado no modo "Mostrar todas as guias" no Safari!

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

        return input
    end run

Tentativa nº 2: funcionou, mas não é viável

Eu recebi um comando-chave trabalhando com o seguinte Applescript agrupado em um Serviço de Automator, mas demorou 5,125 segundos para concluir :(

    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

Vou marcar isso como "melhor resposta" por enquanto, já que é um tratamento bastante completo sobre o assunto e mostra que é praticamente impossível. Obrigado.
precisa saber é o seguinte

Uma solução um pouco desajeitada é usar o Shortcat para selecionar a guia.
Adam Lindberg

3

Eu acho que recebi sua resposta. Passei o dia todo procurando por isso. Eu uso um ótimo aplicativo gratuito chamado BetterTouchTool (usando o OS X 10.10) para adicionar gestos e atalhos adicionais a todos os dispositivos da Apple e funciona instantaneamente! Sem demora!

Vou fazer capturas de tela com cada etapa que você precisa configurar. NOTA: Ele vinculará a posição do mouse como um atalho de teclado de sua escolha quando você estiver usando o safari. Desvantagens: Você não pode alterar a posição da janela do safari e a posição do mouse será diferente do monitor do seu notebook. Solução: recomendo mapear a posição do mouse usando-a em tela cheia com a tela que você mais usa na maioria das vezes (ou apenas mapear dois atalhos para cada tela)

  • 1 Baixe o aplicativo http://www.bettertouchtool.net

  • 2 Abra o aplicativo, selecione o teclado, adicione um aplicativo para listar os atalhos que você adicionará (nesse caso, Safari), escolha seu atalho (estou mapeando "Opção + 1" nesta captura de tela) e, em seguida, dentro do Trigger selecione No menu, selecione " Mover o mouse para a posição " em "Outras ações da Mouser". Marquei a opção errada na captura de tela, é a opção acima. NÃO é "Salvar posição do mouse". Desculpe, estou muito cansado, são 3 da manhã e tenho que trabalhar amanhã insira a descrição da imagem aqui

  • 3 Escolha para onde deseja que o cursor vá (a posição na caixa de entrada verificará o primeiro resultado quando a interface do usuário estiver mostrando ~ 3 resultados)

insira a descrição da imagem aqui

  • 4 Adicione um seguinte evento: Um evento de clique esquerdo. E é isso! insira a descrição da imagem aqui

Faça o mesmo com uma posição diferente do mouse para obter o segundo, terceiro .. mas lembre-se de que a interface do usuário mudará se houver resultados maiores, às vezes até ocultando o primeiro resultado.


Eu remapeei shift+command+\ para command+d. Então você apenas faz o command+d command+f texto aqui command+d.
Dzh

2

Eu tenho usado o Applescript para fazer isso desde antes de adicionarem esse recurso:

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

Ele exibe uma caixa de diálogo de pesquisa, você insere sua pesquisa e ativa imediatamente uma única guia correspondente ou fornece uma caixa de diálogo para selecionar em uma lista de guias correspondentes. Traz a janela para a frente e torna essa a guia ativa na janela.

(Eu tenho um script semelhante para encontrar janelas do Terminal.)


Muito legal; Eu acho que vou tentar isso. Se eu entendi, parece que seu script também pesquisa todas as janelas abertas, em vez de apenas a atual. Isso está correto? Esse é um recurso que eu gostaria que a pesquisa normal não tivesse.
krs013

0

Estou um pouco atrasado para a festa, mas acho que o Shortcat executará a funcionalidade necessária.

Com o bônus adicionado, de modo que possa ser usado com o Mail, etc.


0

Use o Automator e cole o AppleScript anexando-o a um atalho de teclado, como descrito em:

Como atribuir um atalho de teclado a um AppleScript que escrevi?

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.