Applescript, чтобы выставить все Windows Finder? - PullRequest
0 голосов
/ 21 августа 2011

Я пытаюсь выяснить, как написать Applescript, который откроет доступ ко всем окнам Finder.

Логика приложения

Я думаю, что сценарий должен иметь такую ​​логику приложения:

  • Проверьте остаточную настройку и получите имя последнего «Frontmost Application» (возможно, используйте текстовый файл ~ / last-application.txt для его хранения?)
  • Захватите имятекущее переднее приложение
  • Если имя текущего переднего приложения - «Expose», активируйте предыдущее переднее приложение
  • «Остальное», активируйте finder, а затем активируйте «expose» только для окон поиска

Желаемое поведение

  • Когда скрипт активирован, все окна поиска (и только окна поиска) будут показаны в Exposé
  • Если скрипт будет запущенснова (и окно поиска не было выбрано) скрипт просто переключится обратно на последнее переднее приложение

Я не уверен, как это работает, хотятьфу.Если есть другая утилита, которая делает это автоматически, это тоже было бы замечательно.

enter image description here

1 Ответ

1 голос
/ 21 августа 2011
set f to "/s/x/finderexpose"
set prev to do shell script "touch " & f & "; cat " & f
if prev is not "" then
    delay 0.5 -- time to release modifier keys used in a shortcut
    tell application "System Events" to key code 53 -- esc, if Exposé is open
    delay 0.3 -- for the Exposé animation?
    activate application prev
    do shell script "echo '' > " & f
else
    do shell script "echo " & quoted form of (path to frontmost application as text) & " > " & f
    activate application "Finder"
    delay 0.05
    tell application "System Events" to key code 125 using {control down} -- ⌃↓
end if

Было бы менее уродливо, если бы часть для переключения на предыдущее приложение была пропущена:

activate application "Finder"
delay 0.05
tell application "System Events" to key code 125 using {control down}
...