ฉันกำลังทำอะไรอยู่
ฉันรันเชลล์สคริปต์เป็นระยะเพื่อตรวจสอบความละเอียดของหน้าจอ จากนี้มันจะรันหนึ่งในสองสคริปต์ของ Apple ซึ่งโดยพื้นฐานแล้วจะเปลี่ยนการมองเห็นในแอปพลิเคชันอื่น (เครื่องมือเกินบรรยาย)
ปัญหาของฉัน
Apple Scrip ทำงานได้ดีด้วยตัวเอง ฉันเข้าใจว่า 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