Уважаемые господа,
Тема хоть и древняя, но, мне кажется, актуальная: уже несколько раз за последние пол-года мои знакомые, перешедшие на мак спрашивали как сделать так, чтобы архикадовские файлы открывались в новой копии архикада по двойному щелчку на файле. Ответ "никак" их не устраивал, но со временем привыкали.
В связи с чем хотел спросить вашего мнения по поводу такого метода:
В автоматоре можно создать программу (в которой по умолчанию теперь будут открываться все pln) которая будет запускать новую копию архикада, передавая туда имя открываемого файла. Прилагаю файл как это выглядит в автоматоре.
Первое действие - принимает файл и передает его второму;
Второе действие. Для запуска архикада используется shell-script такого вида:
/Applications/Graphisoft/"ArchiCAD 13"/ArchiCAD.app/Contents/MacOS/ArchiCAD "$@" &
sleep 20
Где:
/Applications/Graphisoft/"ArchiCAD 13"/ArchiCAD.app/Contents/MacOS/ArchiCAD - путь к архикаду на моем компьютере
"$@" - путь к файлу, переданный предыдущим действием автоматора
& - символ, говорящий скрипту что не надо ждать пока ArchiCAD завершится
sleep 20 - ждать 20 секунд. Если я этого не добавляю, ArchiCAD не успевает запуститься, а скрипт уже заканчивает свою работу, и ArchiCAD отчего-то завершается тоже.
Полученный алгоритм я сохранил как программу и, как писал выше, назначил ее по умолчанию для всех pln. Результат: двойной щелчок по файлу открывает его в новой копии архикада.
Недостаток 1: если открыть два файла с интервалом менее 20 секунд, второй файл открывается по закрытии первого.
Недостаток 2: при открытии файла в доке прыгает две иконки: моей программы (которая через несколько секунд сама закрывается) и архикада. Решается добавлением в файл info.plist моей программы строк:
<key>NSUIElement</key>
<string>1</string>
после чего моя программа в доке не появляется.
Хотел спросить вас, как более опытных нежели я маководов: не является ли это все грубым надругательством над природой мака или архикада? Может, если этого нет, значит и не нужно? Или наоборот, стоит развить эту тему и сделать, например, автоматическую установку такой программы?
Буду признателен за конструктивную критику.