Сочетания клавиш Safari «Вкладки поиска»

12

Новая функция «Поиск вкладок» в Safari 8 довольно приятная. Когда «показать все вкладки» активирован, вы можете набрать текст, чтобы отфильтровать вкладки, которые вы хотите. Однако, как только у меня появится видимая вкладка, было бы очень приятно иметь возможность активировать эту вкладку. Это позволило бы функциональность типа «прожектор» для вкладок.

Тем не менее, не похоже, что есть комбинация клавиш для активации вкладки после того, как я ее искал, поэтому я вынужден щелкнуть по ней мышкой! Это похоже на недосмотр, я не могу поверить, что Apple добавила бы хороший способ фильтрации вкладок, но нет способа выбрать одну!

Скриншот:

введите описание изображения здесь

SamBeran
источник
Я знаю, что это совершенно бесполезно, но я могу поверить, что они это сделают. : P Особенно учитывая, как ... грубо некоторые края Йосемити вообще.
tubedogg
Что-нибудь новое по этому поводу? Прошло несколько месяцев, и эта проблема, похоже, сохраняется :(
dvcrn
Это представление «Показать все вкладки» с поиском теперь доступно для всех приложений, которые используют собственные вкладки в High Sierra.
Стив Мозер

Ответы:

3

Я попробовал следующие комбинации клавиш в попытке сделать это, безрезультатно:

  • Command + Return ... + Пробел
  • Вариант + Возврат ... + Пробел
  • Control + Return ... + Пробел
  • Command + Shift + \ (команда «Показать все вкладки» на моем MacBook)

Это заставляет меня верить, что это действительно упущение со стороны Apple.

Kludge: создайте команду Automator для симуляции щелчка мышью

Я использовал код, который нашел по адресу https://discussions.apple.com/thread/3708948, чтобы собрать следующие сценарии AppleScripts:

Попытка 1: не работает Я запустил этот код в Applescript, обернутом в службу Automator, сопоставленной с «Command + Shift + Option + Control + Space», используя числа, которые я получаю, нажимая «Command + Control + Shift + 4» для получить адрес для области (600 пикселей по горизонтали слева, 300 пикселей по вертикали сверху), и он будет работать в обычном Safari (нажатие комбинации клавиш приведет к щелчку мыши по этому адресу пикселя), но это не произвело никакого эффекта, когда та же самая ключевая команда была запущена в режиме «Показать все вкладки» в Safari!

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

        return input
    end run

Попытка № 2: сработало, но не осуществимо

Я получил ключевую команду, работающую со следующим Applescript, обернутым в службу Automator, но для завершения потребовалось 5,125 секунды :(

    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
мистифицировать
источник
Я отмечу это как «лучший ответ» на данный момент, так как это довольно тщательное рассмотрение предмета и показывает, что это почти невозможно. Спасибо.
SamBeran
Немного неуклюжий обходной путь - использовать Shortcat для выбора вкладки.
Адам Линдберг
3

Я думаю, что получил ваш ответ. Я провел весь день в поисках этого. Я использую отличное бесплатное приложение под названием BetterTouchTool (использующее OS X 10.10) для добавления дополнительных жестов и ярлыков на все устройства Apple, и оно работает мгновенно! Без задержки!

Я сделаю скриншоты с каждым шагом, который нужно настроить. ПРИМЕЧАНИЕ. При использовании Safari он будет привязывать положение мыши в качестве сочетания клавиш по вашему выбору. Недостатки: Вы не можете изменить положение окна Safari, и положение мыши будет отличаться от монитора вашего ноутбука. Решение: я рекомендую отобразить положение мыши, используя ее в полноэкранном режиме на экране, который вы используете чаще всего (или просто сопоставить два ярлыка для каждого экрана)

  • 1 Загрузите приложение http://www.bettertouchtool.net

  • 2 Откройте приложение, выберите клавиатуру, добавьте приложение в список к ярлыкам, которые вы добавите (в данном случае Safari), выберите ярлык (на этом снимке экрана я отображаю «Option + 1»), а затем внутри триггера выберите выберите « Переместить мышь в положение » в меню «Другие действия Mouser». Я отметил неправильный вариант на скриншоте, это вариант выше. Это НЕ «Сохранить положение мыши». Извините, я слишком устал, сейчас 3 часа ночи, и мне нужно работать завтра введите описание изображения здесь

  • 3 Выберите, куда вы хотите поместить курсор (позиция в поле ввода будет проверять первый результат, когда пользовательский интерфейс показывает ~ 3 результата)

введите описание изображения здесь

  • 4 Добавьте следующее событие: событие левого щелчка. Вот и все! введите описание изображения здесь

Сделайте то же самое с другой позицией мыши, чтобы получить 2-й, 3-й .. результат, но имейте в виду, что пользовательский интерфейс изменится, если получится больше результатов, иногда даже скрывая первый результат.

betoharres
источник
Я переназначил shift+command+\ на command+d. Итак, вы просто делаете command+d command+f текст здесь command+d.
Дж
2

Я использовал Applescript, чтобы сделать это с тех пор, как они добавили эту функцию:

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

Появляется диалоговое окно поиска, вы вводите результаты поиска и сразу же активируете одну соответствующую вкладку, или вы получаете диалоговое окно для выбора из списка соответствующих вкладок. Он выводит окно вперед и делает его активной вкладкой в ​​окне.

(У меня есть похожий скрипт для поиска окон терминала.)

Томас А. Файн
источник
Очень круто; Я думаю, что я попробую это. Если я понимаю, похоже, ваш скрипт также ищет все открытые окна, а не только текущее. Это верно? Мне бы хотелось, чтобы эта функция отсутствовала в обычном поиске.
krs013
0

Я немного опоздал на вечеринку, но думаю, что Shortcat выполнит необходимую функциональность.

С дополнительным бонусом, который можно использовать с почтой и т. Д.

Арин
источник
0

Используйте Automator и вставьте AppleScript, прикрепляя его к сочетанию клавиш, как описано в:

Как назначить сочетание клавиш для написанного мной 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
источник