Я попробовал следующие комбинации клавиш в попытке сделать это, безрезультатно:
- 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