Лайфхакер
Лайфхакер
Лучшее
Рубрики
Рецепты
Подкасты
Сервисы
Колонки
Лучшее
Рубрики
Рецепты
Подкасты
Сервисы
Колонки
Большая распродажа
Новости
Здоровье
Спорт и фитнес
Покупки
Технологии
Отношения
Кино
Реклама
МакрадарСоветы
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

Лучшие предложения

15 товаров с распродажи AliExpress для тех, кто хочет заскочить в последний вагон

15 товаров с распродажи AliExpress для тех, кто хочет заскочить в последний вагон

Автомобильный насос от Baseus

Многофункциональный насос от Baseus отдают за полцены на AliExpress

3D-принтеры на распродаже AliExpress: 10 вариантов с отличными отзывами

3D-принтеры на распродаже AliExpress: 10 вариантов с отличными отзывами

Видеорегистратор DDPAI Z60 Pro:

Забираем со скидкой 68% флагманский 4К-регистратор DDPAI Z60 Pro

Находки AliExpress: самые интересные и полезные товары недели

Находки AliExpress: самые интересные и полезные товары недели

Наушники Soundcore Liberty 5 подешевели на «Великой китайской распродаже»

Наушники Soundcore Liberty 5 подешевели на «Великой китайской распродаже»

Где отдохнуть летом в России

Где отдохнуть летом в России: 7 необычных мест

Надо брать: набор из 228 инструментов от Deko со скидкой 66%

Надо брать: набор из 228 предметов от Deko со скидкой 66%

Это интересно
Полезные подарки на 8 Марта: 3 пылесоса от Dreame со скидкой до 20 000 рублей

Полезные подарки на 8 Марта: 3 пылесоса от Dreame со скидкой до 20 000 рублей

Реклама
321 проект и 3,1 млрд рублей: как прошёл первый год работы Президентского фонда природы

321 проект и 3,1 млрд рублей: как прошёл первый год работы Президентского фонда природы

Российский Красный Крест открывает набор на профессиональные курсы с возможностью бесплатного обучения

Российский Красный Крест открывает набор на профессиональные курсы с возможностью бесплатного обучения

Россия вошла в топ стран, пострадавших от компьютерного вируса RenEngine

Россия вошла в топ стран, пострадавших от компьютерного вируса RenEngine

Комментарии
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
Спасибо огромное за помощь!
Что вы могли пропустить
Эти простые шаги помогут вырастить манго из косточки
Эти простые шаги помогут вырастить манго из косточки
Вчера
«Горящая изба»
Советы
Как хранить зимнюю одежду, шапки и обувь, чтобы вещи не испортились
Как хранить зимнюю одежду, шапки и обувь, чтобы вещи не испортились
0
21 марта
Советы
Советы
Как стирать кожаные штаны правильно
Как стирать кожаные штаны правильно
0
14 марта
Ликбез
Советы
Как ухаживать за стиральной машиной: 7 важных правил
Как ухаживать за стиральной машиной: 7 важных правил
2 марта
«Горящая изба»
Советы
Как ухаживать за цветами в губке
Как ухаживать за цветами в губке
0
16 февраля
Ликбез
Советы
Как почистить термос внутри и снаружи
Как почистить термос внутри и снаружи
0
15 февраля
Советы
Советы
Как и чем мыть кисти для макияжа
Как и чем мыть кисти для макияжа
0
8 февраля
Ликбез
Советы
Как часто надо стирать одежду
Как часто надо стирать одежду
0
31 января
Советы
Советы
Как организовать пространство, если ты неряха: личный опыт
Как организовать пространство, если ты неряха: личный опыт
0
30 января
Советы
Советы
Как хранить дома книги, если их очень много
Как хранить дома книги, если их очень много
0
24 января
Советы
Советы
Как отстирать гуашь с одежды
Как отстирать гуашь с одежды
0
19 января
Ликбез
Советы
Почему запотевают очки и как это исправить
Почему запотевают очки и как это исправить
0
18 января
Советы
Советы
Как убрать клей и суперклей с одежды, рук и других поверхностей
Как убрать клей и суперклей с одежды, рук и других поверхностей
0
13 января
Ликбез
Советы
Как склеить пазлы, чтобы повесить их на стену
Как склеить пазлы, чтобы повесить их на стену
0
8 января
Ликбез
Советы
Как открыть шампанское голыми руками и не только
Как открыть шампанское голыми руками и не только
0
28 декабря 2025
Ликбез
Советы

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

Аватар автора комментария
Yana Krinitsyna23 минуты назад

0 / 0

Учитывая, какой Аффлек бездарь в актерском плане... Где дуэт из Смертельного оружия, Назад в будущее? Где оба дуэта Магнето и Профессора Икс из людей Икс? Где Пегг и Фрост? Где дуэт из Часа пик в конце концов?
10 самых запоминающихся актёрских дуэтов 
Аватар автора комментария
Наталья Копылова31 минуту назад

0 / 0

и так часто бывает, что послезавтра уже и не надо ничего делать! так что тут я скорее с вами
35 родительских советов, которые оказались реально полезными
Аватар автора комментария
Папа Айлин1 час назад

0 / 0

Коитус? Разве не решили избавляться от англицизмов? Только привыкли к "соитию", так уже "коитус". Вспоминается фильм Большой Лебовски (Сцена с Джулианной Мур)
Почему сперма вытекает из влагалища после секса и может ли это мешать зачатию
Аватар автора комментария
Wow Wow3 часа назад

0 / 0

К сожалению, совет «Если убирать не очень хочется, можно этого не делать» оказался для меня бесполезным. Мое психологическое состояние зависит от обстановки в квартире. Чистый пол и вещи на месте дарят спокойствие, а бардак - создает хаос в голове. Так что уже 4 месяца я вырабатываю привычку убираться раз в неделю.
35 родительских советов, которые оказались реально полезными
Подарки, которые сближают: 5 товаров с распродажи Авито для второй половинки  

Подарки, которые сближают: 5 товаров с распродажи Авито для второй половинки  

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