Как стать автором
Обновить

Комментарии 15

Подскажите, зачем нужно «Открыть нужную папку»?
Если не затруднит — какой-нибудь ресурс по applescript с нуля.

Что есть Quicksilver?

Может есть еще — что поинтереснее? :-)
Ну собственно чтобы одним нажатием на кнопку открылась нужная папка. Вместо того чтобы идти в проводник и искать ее там. Допустим F16 = текущая работа, F17=текущие выплаты мне, F18=текущие выплаты мной. Допустим я читаю почту, нужно посмотреть акты и счета за первый квартал, я нажимаю Alt+1 и запускается скрипт «открыть папку…..scpt», т.е. за долю секунды она тут же у меня перед глазами.

По Applescript — в целом я бы присоединился к вопросу, из годного для ламеров в основном читаю macscripter.net и в частности macscripter.net/viewtopic.php?id=24724 и конечно
www.macstart.ru/viewparts.php?part=code

Но как минимум всегда можно написать для любой вызываемой мышкой функции что-то типа
tell application "System Events"
	
	click menu item "Turn Off Home Sharing (activeplum@gmail.com)" of menu "Advanced" of menu bar 1 of application process "iTunes" of application "System Events"
	
end tell

— не с первого так со второго раза синтаксис подобрать можно даже далекому от программирования человеку:)

Quicksilver — qsapp.com Это бесплатный лончер программ и скриптов по кастомным горячим клавишам. Там очень много плагинов для почты и системных служб, до них я даже не добрался. Для создания триггеров я захожу в quicksilver.app, нажимаю cmd+, Triggers, плюсик — и тут появляется окно создания нового триггера. В нем остается просто написать, чего мы хотим — либо набираем название приложения на запуск, либо название скрипта на исполнение. В основном я именно ее использую для переключения между программами (допустим, Alt+9 для мгновенного перехода в Mail, Alt+T для перехода в iTunes и т.д.) Впрочем, наверное, для этого же можно использовать Automator с созданием системной службы и выбором клавиатурных клавиш в системных настройках — не пробовал, т.к. показалось сложнее.

Уже образовав жесткую связь между запуском скрипта и клавиатурной командой, вторым слоем можно приравнять к клавиатурной команде
а) жесты мышки и тачпада — через MagicPrefs. Например у меня наложение 3 пальцев на мышь запускает удаление аудиозаписей с диктофона.
б) жесты USB-контроллера типа GriffinPowermate store.griffintechnology.com/desktop/powermate. Допустим, сделав 2 варианта первого скрипта, назначив им разные клавиатурные команды, я могу с выделенным файлом поворотом колесика влево отправить его по почте иванову со словами «не понравилось, переделай пожалуйста выделенное мной», а вправо — Петрову со словами «Прими в работу».
Я как то на Alfred остановился.
Видимо, в данном случае конкретные инструменты запуска кастомных файлов *.scpt без разницы, главное сделать их:)
А есть лаунчер, который умеет не обращать внимание на текущую раскладку?
Quicksilver не обращает внимания на текущую раскладку.
У Alfred есть настройка для этого: Advanced — Keyboard — Force keyboard. Это, имхо, одна из мега-фич, делающих работу с этой программой очень удобной.
А у вас нет проблемы, что Quicksilver «забывает» порой назначенные хоткеи? Я долго мучался с ним и по этой причине сменил его на Alfred.

Я использую скрипты для копирования пути к текущему файлу в буфер и для подкрашивания файлов в лейблы нескольких цветов
Нет, не забывает, только разве что крашнуться может и висеть где-то на далеком рабочем столе с предложением Clear Caches. Про цветные метки очень хорошая мысль, тоже сделаю скрипты для этого, даже где-то черновики лежали. Кстати встречный вопрос — совсем-совсем не увеличить число цветов, да? Похоже никак.
О, оказывается он у меня ещё стоит и я запамятовал: не хоткеи забывает, а сами скрипты. Вот такая картина бывала:

Погуглил, оказывается это починили год назад, хотя я был уверен, что QS забросили. Ну да ладно, я доволен Альфредом.

Количество цветов думаю нет, но думаю больше станет сложнее различать =)

Правда в последнее время я реже использую скрипты и всё чаще различные функции из программы Quickeys. Очень мощная штука, способная переназначать клавишы на что угодно, причём отдельно для разных программ, вызывать эплскрипты, вызывать собственные функции с глобальными и локальными переменными и даже делать небольшие панельки с кнопками для любых программ.
Спасибо, плметил себе — также из таких программ хотел бы отметить положительный опыт Keyboard Maestro, исключительно вежливый и чистый интерфейс, в основном для многоходовых макросов со сложными условиями запуска (если нужно к примеру в ответ на письмо в почте со словом «конференция» запускать стандартный ответ, идти на нужный сайт для заказа билетов, создавать событие в каленадер и т.д., то это туда — Applescript был бы на десяток страниц, а там меню еще проще и понятнее чем в автоматоре).
У меня в свое время было много этих скриптов, активно пользовался, хотя не сказать, чтобы в повседневной офисной работе, просто на домашнем маке. Сейчас как-то меньше, но тем не менее до сих пор висит скрипт (folder action) на папке Downloads, который автоматически при добавлении любого файла с расширением .torrent помещает его в подпапку Downloads/Torrents. Можно на его основе сделать что-нибудь полезное и для офисной работы.
Torrents.scpt
on adding folder items to this_folder after receiving added_items
	tell application "Finder"
		set torrents_home to "Torrents" as string
		try
			if not (exists folder torrents_home of this_folder) then
				make new folder at this_folder with properties {name:torrents_home}
			end if
			
			set the destination_folder to folder torrents_home of this_folder as alias
			
			repeat with i from 1 to number of items in added_items
				set this_item to item i of added_items
				set {file_name, name_ext} to {name, name extension} of this_item
				
				if name_ext is "torrent" then
					move this_item to destination_folder
				end if
			end repeat
		on error error_message number error_number
			display dialog error_message buttons {"OK"} default button 1
		end try
	end tell
end adding folder items to


Ещё было (и есть, но не пользуюсь уже) куча мелких скриптов типа показать все окна Finder, закрыть все кроме текущего окна Finder, или, например, закрыть все открытые приложения.
Ещё пользуюсь своеобразным самопальным и несколько неудобным решением для будильника. Довольно неэлегантное решение, но я привык. В общем, есть скрипт, который выставляет макс. звук на компе, макс. звук в iTunes, потом находит нужный плейлист и запускает проигрыш. Дальше, понятное дело, вешается этот скрипт на выполнение события в iCal (Run Script) и осталось это событие («будильник») поставить на нужное время. Огромный минус такого решения: нужно каждый день «заводить» этот будильник. Поэтому пользуюсь обычным на телефоне, а этим только при крайней необходимости, когда совсем нельзя проспать.
Volume100.scpt
set volume output volume 100
tell application "iTunes"
	activate
	set sound volume to 100
	reveal user playlist "!Alarm Playlist"
	play track 2 of user playlist "!Alarm Playlist"
end tell


Есть также маленький скриптик для подсчета кол-ва символов, кол-ва слов и кол-ва параграфов в тексте в clipboard. Мне было удобно, когда занимался английским и там слова считались: нужно было попасть в рамки 120-150 слов. А теперь использую, когда пишу сообщения на одном форуме, где ограничение 400 символов. Называется именно так, потому что опечатался при создании и получилось сonut :)
Coconut.scpt
set myCount to count (the clipboard)
set myWords to count words of (the clipboard)
set myParas to count paragraphs of (the clipboard)

display dialog "Characters: " & myCount & ¬
	return & ¬
	"Words: " & myWords & ¬
	return & ¬
	"Paragraphs: " & myParas


Кстати, некоторые приложения поддерживают AS «из коробки», например, FFView.app.
Ну и в конце хочу написать, что помимо всего прочего с помощью AS можно запускать на выполнение bash-скрипты (как это делать описано, например, здесь), а из bash-скриптов или просто из командной строки запускать AS с помощью osascript(1). Автор, наверное, в курсе, но остальным заинтересованным может пригодиться :)

Что же до полноценного тьюториала, то я соглашусь, с этим всё плохо. Тоже искал в своё время, тоже ничего хорошего не нашёл. Только вот такие разрозненные куски в интернете встречаются. Видимо, это крайне непопулярный язык. Даже автоматором больше пользуются.

Напоследок, раз уж зашла речь об автоматизации, этот самый автоматор — тоже неплохой инструмент в борьбе с рутиной. Например, я часто использую скрипт (кстати, из контекстного меню по правому клику мышкой в Finder), который именует файлы по порядку. В основе — действие Rename Finder Items (Make Sequential, new name). Выделил файлы — клик — клик, готово. При создании скрипта выбрать Service (тогда будет в контекстном меню).
Пардон, про тьюториал спрашивали в комментариях, я спутал. Так вот, только что нашёл, как оказалось, полную и подробную документацию на сайте Apple. Либо я слепой был, либо лет 5 назад этого ещё не было :) Конечно, не тьюториал, но хоть так.
Кстати, небольшое замечание по поводу «открыть папку». А почему бы просто не использовать:
tell application "Finder"
	activate
	open ("/Users/YourName/Folders/Subfolder/" as POSIX file)
end tell

Мне кажется, это и удобнее, и компактнее. Захотел поменять имя папки, так всего-то добавить пару слов, а в вашем варианте ещё «of folder of folder of folder» писать. Ну, кому как, короче.
По поводу первого скрипта, кстати, можно сделать его немножечко более функциональным, добавив диалоговое окно, которое будет спрашивать «отправитель», «тема», «текст».
Подскажите, кто знает, как с помощью AppleScript открыть контекстное меню?
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации