Лайфхакер
Лайфхакер
Лучшее
Новости
Жизнь
Рецепты
Здоровье
Кино
Технологии
Покупки
Лучшее
Новости
Жизнь
Рецепты
Здоровье
Кино
Технологии
Покупки
Бежим с Лайфхакером
Добрые новости
Стыдные вопросы
Есть мнение
Норм или стрём
Личный опыт
Объясняем за минуту
Сервисы
МакрадарСоветы
3 ноября 2009

Используем GeekTool совместно с iTunes

Фото автора Kernel Panic
Kernel Panic

Используем GeekTool совместно с iTunes
GeekTool
Заметка про GeekTool оказалась довольно востребованной. Поэтому я решил немного развить тему и рассказать о других способах работы с программой. Если появятся какие-то вопросы — смело задавайте. 

Работа с iTunes

Читатель mixazen интересуется, как вывести на рабочий стол название проигрываемой песни. Эта задача состоит фактически из двух подзадач — надо как-то получить от iTunes название композиции, а затем с помощью GeekTool отобразить его на рабочем столе.

На форумах Macrumors я нашел следующий скрипт:

property go1 : false

– check to see if iTunes is running

tell application “System Events”

set the process_flag to (exists process “iTunes”)

end tell

if the process_flag then

– check to see if iTunes is playing

tell application “iTunes”

if player state contains playing then set go1 to true

end tell

if go1 then

– do what you need to do

tell application “iTunes”

set foo1 to name of current track

set foo2 to artist of current track

set foo3 to album of current track

set foo4 to foo1 & ” / ” & foo2 & ” / ” & foo3

end tell

end if

end if

Сохраните его, дав произвольное имя и указав расширение scpt (файл Applescript). Затем запустите GeekTool, создайте новый Гиклет (как это сделать, говорилось в предыдущей статье). В разделе Command укажите следующую команду:

osascript /путь/до/скрипта/itunes.scpt

osascript — это команда выполнения скрипта AppleScript. Остается выбрать промежуток обновления (раз в 5 секунд будет вполне достаточно) и поэкспериментировать с оформлением. Скрипт нормально работает с последней версией iTunes и корректно отображает названия русскоязычных песен. Можно пойти еще дальше и, например, вывести на рабочий стол прогресс-бар проигрываемой песни. Но это перебор, на мой взгляд.

Выводим обложку альбома проигрываемой песни на рабочий стол

GeekTool — удивительно мощная штука. Возможности, которые предоставляет программа, ограничены разве что фантазией пользователей. Изучая примеры использования, натолкнулся на статью Доктора Дрэнга (Dr. Drang), который с помощью GeekTool выводит на рабочий стол обложку альбома. После получаса разбирательств мой рабочий стол выглядит так (напомню, что у меня установлены GeekTool 3.0 RC5 и iTunes 9.0.2):

А теперь о том, как вывести на рабочий стол обложку композиции, которая проигрывается в настоящий момент в iTunes. Для этого нам понадобится написать AppleScript и сделать пару гиклетов.

Код AppleScript выглядит следующим образом:

– Paths and stuff

set ArtworkFromiTunes to ((path to home folder) as text) & ¬

“Pictures:iTunes Artwork:From iTunes:albumArt.pict” as alias

set iTunesArtwork to ((path to home folder) as text) & ¬

“Pictures:iTunes Artwork:From iTunes:albumArt.pict”

set DefaultArtwork to ((path to home folder) as text) & ¬

“Pictures:iTunes Artwork:Default:albumArt.pict”

set displayArtwork to ((path to home folder) as text) & ¬

“Pictures:iTunes Artwork:albumArt.pict”

– Unix versions of the above path strings

set unixITunesArtwork to the quoted form of POSIX path of iTunesArtwork

set unixDefaultArtwork to the quoted form of POSIX path of DefaultArtwork

set unixDisplayArtwork to the quoted form of POSIX path of displayArtwork

set whichArt to “blank”

tell application “System Events”

if exists process “iTunes” then — iTunes is running

tell application “iTunes”

if player state is playing then — iTunes is playing

set aLibrary to name of current playlist — Name of Current Playlist

set aTrack to current track

set aTrackArtwork to null

if (count of artwork of aTrack) ≥ 1 then — there’s an album cover

“Running and playing and art”

set aTrackArtwork to data of artwork 1 of aTrack

set fileRef to ¬

(open for access ArtworkFromiTunes with write permission)

try

set eof fileRef to 512

write aTrackArtwork to fileRef starting at 513

close access fileRef

on error errorMsg

try

close access fileRef

end try

error errorMsg

end try

tell application “Finder” to ¬

set creator type of ArtworkFromiTunes to “????”

set whichArt to “iTunes”

end if

end if

end tell

end if

end tell

if whichArt is “iTunes” then

do shell script “ditto ‑rsrc ” & unixITunesArtwork & space & unixDisplayArtwork

else

do shell script “ditto ‑rsrc ” & unixDefaultArtwork & space & unixDisplayArtwork

end if

Сохраните файл с именем iTunesArtwork.scpt. Вы также можете скачать его с сайта «Макрадара». Файл лучше поместить в папку ~/Library/Scripts, хотя это не принципиально.

Теперь создаем первый гиклет. Щелкаете по значку Shell, перетаскиваете его на рабочий стол, а в качестве команды, указываете эту:

osascript ~/Library/Scripts/iTunesArtwork.scpt

Гиклет вызывает AppleScript и больше ничего не делает. Поэтому тратить время на форматирование не надо. Укажите лишь интервал вызова — 5–10 секунд вполне достаточно.

Затем в папке ~/Pictures создайте подпапку iTunes Artwork со следующей структурой:

structure

Эту структуру надо воспроизвести в точности. Создайте папки From iTunes и Default. В них поместите файл albumArt.pict, созданный в любом графическом редакторе. Файл albumArt.pict используется в тех случаях, когда iTunes ничего не играет или у альбома отсутствует обложка. Поэтому albumArt.pict делают размером 1х1 пикселей и закрашивают цветом, совпадающим с цветом обоев рабочего стола (чтобы не оздавалось впечатления «битого пикселя»).

Теперь надо создать еще один гиклет. Щелкните по значку Picture, перетащите его на рабочий стол. В поле file укажите:

file:///Users/путь_к_файлу/Pictures/iTunes%20Artwork/albumArt.pict

Укажите интервал обновления (5−10 сек) и размер картинки (я выбрал 200х200 точек).

Если захотите выводить на рабочий стол обложку альбомов, имейте в виду: у GeekTool сразу возрастает аппетит к памяти. Вместо привычных 30–40 Мб ОЗУ, он начинает требовать 300 Мб. Для современных компьютеров, оснащенных 4 и более гигабайтами оперативки это практически на ощутимо, для старых макбуков с лимитов в 2 Гб — уже повод задуматься, так ли уж необходимы эти «свистелки». На всякий случай в угол десктопа можно отдельным гиклетом выводить информацию об объеме ОЗУ, используемом GeekTool. Команда такая:

ps axo "rss,ucomm" | awk '/Geek/ {printf "%.2f", $1/1024}'

***

В этих двух примерах мы выводили на рабочий стол как текстовые данные, так и картинки. Еще раз подверкну: GeekTool — фантастическое приложение. Я продолжаю экспериментировать с ним ежедневно. Уже пробовал выводить на рабочий стол статистику Li.ru одного из сайтов, твиты и погоду. :-)

Если у вас есть какие-то вопросы или уточнения, буду рад увидеть их в комментариях. Делитесь результатами своих экспериментов, интересно узнать о вашем опыте.

Обновлено. Полезная ссылка от Сергея Тугаринова — подборка скриптов для GeekTool

***

Полезные ссылки:

  • Вывод обложки альбома на рабочий стол
  • Как отследить, сколько памяти использует Geek Tool
  • Как вывести события из календаря iCal прямо на рабочий стол?
Если нашли ошибку, выделите текст и нажмите Ctrl + Enter
Это интересно
От доставки продуктов до тушения пожаров: как дроны помогают решать повседневные задачи

От доставки продуктов до тушения пожаров: как дроны помогают решать повседневные задачи

Как обновить квартиру: 6 простых шагов к свободному пространству и уютному дому

Как обновить квартиру: 6 простых шагов к свободному пространству и уютному дому

Как сделать жизнь в своём районе комфортнее: 6 простых способов

Как сделать жизнь в своём районе комфортнее: 6 простых способов

Семейный туризм без перегруза: как организовать отдых и куда поехать с детьми в России

Семейный туризм без перегруза: как организовать отдых и куда поехать с детьми в России

Комментарии
Vergoin
03.11.09 14:19
Забавная статья. Хотя мне кажется, что Apple задумала систему виджетов для того, чтобы не загромождать рабочий стол. А здесь наблюдается обратная тенденция. Но всё равно, спасибо за статью. P.S. А где Вы такие весёлые обои скачали, если не секрет?
Malkovich
03.11.09 14:20
касательно обложки на столе ничего не скажу, но что до названия трэка — если это необходимость информативная, то почему не использовать DesktopLyrics? в довесок можно автоматически получать тексты проигранных композиций (если таковые доступны)
Sergey Tugarinov
03.11.09 14:36
Уже пробовал выводить на рабочий стол статистику Li.ru одного из сайтов, твиты и погоду. :-)Буду вам очень благодарен за скрипты статистики и погоды :) А за обложку отдельное спасибо, хотел на днях поискать реализацию, но вы меня опередили :)
gva
03.11.09 16:20
да, обои классные ) откуда?
Vladimir Yashnikov
03.11.09 19:30
Vergoin, gva: обои взял отсюда.
Vergoin
03.11.09 20:25
Vladimir Yashnikov: спасибо за ссылку
Sergey Tugarinov
03.11.09 20:33
Нашел хорошую подборку уже готовых к использованию скриптов.
Vladimir Yashnikov
03.11.09 20:54
@Sergey Tugarinov. В качестве погоды придется использовать Yahoo Weather,. Этот код выводит текущую погоду в выбранном городе (RSXX0209 — код вашего города, его можно узнать на weather.yahoo.com) curl --silent "http://xml.weather.yahoo.com/forecastrss?p=RSXX0209&;u=c" | grep -e "Current Conditions" -A 1 | tail -n 1 | sed -e 's///' && echo && curl --silent "http://xml.weather.yahoo.com/forecastrss?p=YOURZIPCODE&;u=f" | grep -e "Forecast:" -A 2 | tail -n 2 | sed -e 's///' -e 's///' | sed "s/(.*). (.*)/1?2/" | tr "?" "n" | sed "s/High: (.*) Low: (.*)/?H: 1 L: 2/" | sed "s/?(.*)/\1/" А этот код выводит погоду на сегодня и на завтра для выбранного города: curl --silent "http://xml.weather.yahoo.com/forecastrss?p=RSXX0209&;u=c" | grep -e "Forecast:" -A2 -B2 |tail -n 4 | grep -v orecast | sed -e 's///' -e 's///' | sed -n -E '2n;s/[ ]-[ ](.+)..+:[ ]([0-9]+).+:[ ]([0-9]+)/: 1, 2 | 3/;p' Вывод статистики с Ли.ру проще. Идем в свой аккаунт, выбираем тип статистики, щелкаем правой кнопкой мышки по графику, копируем адрес картинки. Затем создаете новый гиклет image, где указываете этот путь. Дальше стандартно: выбираем размеры картинки, частоту обновления :-) За ссылку спасибо, добавил в пост!
Sergey Tugarinov
03.11.09 21:27
@Vladimir Yashnikov, спасибо за погоду, все просто отличненько. А вот насчет статистики, помоему неудобно держать лишнее изображение на рабочем столе, проще скинуть его к виджетам, что я и сделал :) Надо будет повозиться на досуге, может и получится распарсить LI.ru, для вывода текстовой информации. А еще лучше, подключиться к API Google Anatytics, что в принципе совсем не сложно :)
CaTaHuK
04.11.09 09:34
у меня не получается вывести облогу ((
Vladimir Yashnikov
04.11.09 16:13
CaTaHuK, в чем сложности? Какие-то сообщения об ошибке? Какая версия ОС и GeekTool? Любые подробности могут помочь решить вашу проблему :-)
Sergey Tugarinov
04.11.09 16:23
Владимир, кстати. Сделал все по вашему описанию, все пашет просто отлично. Вот только после выключения iTunes обложка остается на месте, и никуда не пропадает :)
Артем
04.11.09 17:45
я прикрутил еще одну картинку сверху. прозрачный png, в котором рамка и белая "тень", которая делает картинку как бы стеклянной. а то просто обложка смотрится плосковато.
CaTaHuK
04.11.09 20:55
у меня лео, версия приложения 2.1.2 , картинку с пикселем имею )), а вот обложки проигрываемой песни нет (( и еще проблема с отображением русского текста ((
Sergey Tugarinov
07.11.09 19:16
Вот еще, куча отличнейших примеров. А еще там-же в комментариях нашел отличнейший пример реализации вывода картинки погоды: 1 GeckTool (Shell) curl --silent "http://weather.yahoo.com/forecast/код вашего города.html" | grep "forecast-icon" | sed "s/.*background:url('(.*)'); _background.*/1/" | xargs curl --silent -o /weather.png 2 GeckTool непосредственно выводящий на экран изображение (Image) file://localhost/weather.png
Алексей
28.11.09 23:44
дорогие друзья, подскажите пожалуйста!! не могу сделать привязку текста песни к треку, вообще в маках полный ноль, купил вчера. Заранее спасибо за помошь.
Vladimir Yashnikov
29.11.09 00:22
Алексей, в iTunes выделяете песню, жмете command-i (+i). В появившемся окне перейдите на вкладку lyrics. Туда можно скопировать текст песни. Можно еще установить программу GimmeSomeTune. Она сама будет находить тексты песен и обложки альбомов.
Алексей
29.11.09 08:56
Спасибо огромное за помощь!
Что вы могли пропустить
15 бытовых устройств, которые выгоднее взять в аренду или купить совместно с друзьями 
15 бытовых устройств, которые выгоднее взять в аренду или купить совместно с друзьями 
0
26 мая
Советы
Советы
Как правильно мыть аэрогриль
Как правильно мыть аэрогриль
0
9 мая
Ликбез
Советы
Классные способы отстирать шторы в стиральной машине и не испортить их
Классные способы отстирать шторы в стиральной машине и не испортить их
8 мая
«Горящая изба»
Советы
Я проверила 6 популярных лайфхаков с мицеллярной водой, и вот что работает на самом деле
Я проверила 6 популярных лайфхаков с мицеллярной водой, и вот что работает на самом деле
0
6 мая
Советы
Советы
Как сдерживать беспорядок в доме с помощью метода пяти вещей
Как сдерживать беспорядок в доме с помощью метода пяти вещей
0
25 апреля
Советы
Советы
7 бытовых вещей, которые стоит убрать подальше от детей и животных
7 бытовых вещей, которые стоит убрать подальше от детей и животных
0
20 апреля
Советы
Советы
Как выбрать моющий пылесос для небольшой квартиры: характеристики, на которые реально стоит смотреть
Как выбрать моющий пылесос для небольшой квартиры: характеристики, на которые реально стоит смотреть
17 апреля
«Горящая изба»
Советы
Как пользоваться моющим пылесосом правильно
Как пользоваться моющим пылесосом правильно
0
10 апреля
Ликбез
Советы
Отличные способы покрасить яйца на Пасху, которые работают из года в год
Отличные способы покрасить яйца на Пасху, которые работают из года в год
9 апреля
«Горящая изба»
Советы
В Азии обнаружили неизвестную популяцию древних людей, пережившую ледниковый период
В Азии обнаружили неизвестную популяцию древних людей, пережившую ледниковый период
0
6 апреля
Новости
Советы
Как пользоваться пипидастром
Как пользоваться пипидастром
0
3 апреля
Ликбез
Советы
Как это сделать: превратить упаковку «Золотого яблока» в полезные вещи для дома
Как это сделать: превратить упаковку «Золотого яблока» в полезные вещи для дома
0
2 апреля
Советы
Советы
18 вещей в доме, которые только зря занимают место. Большой чек-лист расхламления на весну
18 вещей в доме, которые только зря занимают место. Большой чек-лист расхламления на весну
1 апреля
«Горящая изба»
Советы
6 способов использовать лимонную кислоту в быту
6 способов использовать лимонную кислоту в быту
0
27 марта
Советы
Советы
Как найти квартиру мечты на Яндекс Недвижимости: 3 совета для общения с ИИ-помощником
Как найти квартиру мечты на Яндекс Недвижимости: 3 совета для общения с ИИ-помощником
0
26 марта
Советы
Советы

Новые комментарии

Аватар автора комментария
Рамиль Вагапов15 минут назад

0 / 0

Соседка попросила повесить люстру. У нее была отвёртка как раз с батарейкой. На проводах обоих светодиод горел. Я оторопел. Но виду не показал. На свой страх и риск осторожно не касаясь подключил. Осадок о моём незнании остался. Статья вроде понятная. Но ответ я в ней я не нашел. Спасибо.
Как пользоваться индикаторной отвёрткой и когда она может пригодиться
Аватар автора комментария
Kosta Z1 час назад

0 / 0

Очень забавные размышления ))) А может специалисты задумаются о проблематике не "здесь и сейчас", а в контексте социально-историко-культурного развития общества, в результате чего и сложились гендерные роли общества, которые в наше время хотят перемолоть?
«Мальчики не плачут»: как популярный стереотип разрушает мужчинам психику и жизнь
Аватар автора комментария
Denis Kotov1 час назад

0 / 0

А я перенёс, но там немного по программировать пришлось, но нейросетки помагают.
Как перенести свои плейлисты из Apple Music в «Яндекс Музыку»
Аватар автора комментария
Sergey Kovalev1 час назад

0 / 0

И в шапочках из фольги
На Марсе нашли странный полосатый камень — ничего подобного на планете ещё не встречали
ИГРА: Настоящие чемпионы. Найдите своего идеального союзника в мире еды

ИГРА: Настоящие чемпионы. Найдите своего идеального союзника в мире еды

Лайфхакер
Информация
О проектеРубрикиРекламаРедакцияВакансииО компании
Подписка
TelegramВКонтактеTwitterViberYouTubeИнициалRSS
Правила
Пользовательское соглашениеПолитика обработки персональных данныхПравила применения рекомендательных технологийПравила сообществаСогласие на обработку персональных данныхСогласие для рекламных рассылокСогласие для информационной программы
18+Копирование материалов запрещено.
Издание может получать комиссию от покупки товаров, представленных в публикациях