Что я делаю
Я периодически запускаю сценарий оболочки, который проверяет разрешение моего экрана. Основываясь на этом, он запустит один из двух сценариев Apple, которые в основном изменяют видимость в другом приложении (инструменты для гиков).
Моя проблема
Яблочный скрипт работает сам по себе. Я понимаю, что osascript - это способ вызвать сценарий Apple, потому что, если я попытаюсь запустить его напрямую, он скажет, что «не может выполнить двоичный файл». Однако, когда я использую osascript $Home/path/smallscreen.scpt
, это дает мне новую ошибку:
osascript[61390:1405791] Error loading /Library/ScriptingAdditions/Adobe Unit Types.osax/Contents/MacOS/Adobe Unit Types: dlopen(/Library/ScriptingAdditions/Adobe Unit Types.osax/Contents/MacOS/Adobe Unit Types, 262): no suitable image found.
Did find: /Library/ScriptingAdditions/Adobe Unit Types.osax/Contents/MacOS/Adobe Unit Types: no matching architecture in universal wrapper
osascript: OpenScripting.framework - scripting addition "/Library/ScriptingAdditions/Adobe Unit Types.osax" declares no loadable handlers.
Может быть, я просто что-то неправильно понимаю, но я подумал, что нужно прямо запустить скрипт из нижней части этого ответа: https://stackoverflow.com/a/16071855/2522073
Утверждая, что вы можете запустить скрипт Apple, как этот osascript /Users/USERNAME/Desktop/foo.scpt
Шелл-код:
rez=$(xdpyinfo | grep dimensions | awk '{print $2}' | awk -Fx '{print $1, $2}')
echo $rez> $HOME/Documents/Geeklets/Displays_temp.txt
rezold=`grep -s . $HOME/Documents/Geeklets/Displays_temp.txt`
if [ "$rezold" != "$rez" ]; then
if [ "$rez" == "1280 777" ]; then
osascript /Users/coolguy/Documents/Geeklets/smallscreen.scpt
else
$HOME/Scripts/Geeklets/largescreen.scpt
fi
fi
Мой сценарий Apple:
tell application "GeekTool Helper"
set smallGroup to group "small"
set largeGroup to group "large"
set defultGroup to group "Default Group"
set visible of smallGroup to true
set visible of largeGroup to false
set visible of defultGroup to true
end tell
Я запускаю это на Mac 10.10.3.