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

Поваренная книга донора. 15 простых и полезных рецептов, которые поддержат организм до и после сдачи крови

3 причины, почему с дачи мы всегда возвращаемся с полным багажником

3 причины, почему с дачи мы всегда возвращаемся с полным багажником

Что посмотреть в Коми за 2 дня: маршрут по Сыктывкару и окрестностям

Что посмотреть в Коми за 2 дня: маршрут по Сыктывкару и окрестностям

Тайная жизнь аэропортов

Тайная жизнь аэропортов

Комментарии
Авторизуйтесь, чтобы оставить комментарий
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
Вчера
Советы
Советы
Какой обогреватель для дома выбрать, чтобы не переплачивать по счетам
Какой обогреватель для дома выбрать, чтобы не переплачивать по счетам
15 сентября
«Горящая изба»
Советы
Съезжаем со съёмной квартиры: чек-лист уборки, которая поможет вернуть депозит
Съезжаем со съёмной квартиры: чек-лист уборки, которая поможет вернуть депозит
0
7 сентября
Советы
Советы
Что купить в первую очередь, если вы съезжаете от родителей
Что купить в первую очередь, если вы съезжаете от родителей
0
30 августа
Советы
Советы
Как сделать съёмную квартиру уютнее
Как сделать съёмную квартиру уютнее
0
18 июля
Советы
Советы
Как стирать постельное бельё, чтобы оно хрустело как в отеле
Как стирать постельное бельё, чтобы оно хрустело как в отеле
14 июля
«Горящая изба»
Советы
Чем смазать дверь, чтобы она не скрипела
Чем смазать дверь, чтобы она не скрипела
0
11 июля
Ликбез
Советы
Плачу на ретро: Collider выбрал 10 культовых фильмов 80‑х, о которых все забыли
Плачу на ретро: Collider выбрал 10 культовых фильмов 80‑х, о которых все забыли
0
24 июня
Кино
Новости
Что надо знать про ортопедическую подушку, чтобы спать сном младенца
Что надо знать про ортопедическую подушку, чтобы спать сном младенца
24 июня
«Горящая изба»
Советы
15 насекомых, которые живут с нами дома
15 насекомых, которые живут с нами дома
0
22 июня
Ликбез
Советы
Как избавиться от чешуйницы в квартире
Как избавиться от чешуйницы в квартире
0
11 июня
Ликбез
Советы
Какого специалиста вызвать, если в доме что-то сломалось
Какого специалиста вызвать, если в доме что-то сломалось
0
7 июня
Советы
Советы
15 бытовых устройств, которые выгоднее взять в аренду или купить совместно с друзьями 
15 бытовых устройств, которые выгоднее взять в аренду или купить совместно с друзьями 
0
26 мая
Советы
Советы
Как правильно мыть аэрогриль
Как правильно мыть аэрогриль
0
9 мая
Ликбез
Советы
Классные способы отстирать шторы в стиральной машине и не испортить их
Классные способы отстирать шторы в стиральной машине и не испортить их
8 мая
«Горящая изба»
Советы

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

Аватар автора комментария
Александр Медведев7 часов назад

0 / 0

Советую еще https://serphunt.ru/chat-gpt/. Это агрегатор, несколько нейросетей в одном окне. Очень удобно.
10 лучших нейросетей для генерации текста на русском языке в 2025 году
Аватар автора комментария
Александр Медведев7 часов назад

0 / 0

Врет как дышит. Гонял этот ИИ https://serphunt.ru/chat-gpt/. 50/50 правда/выдумки. Ерунда вобщем.
15 неожиданных применений ChatGPT, которые вы захотите попробовать сами
Аватар автора комментария
10 часов назад

0 / 0

Занимался много чем и занимаюсь сейчас тяжелую атлетику и местами хотя бы 1 раз в неделю пробежку. Бегаю всегда снег, дождь слякоть( уже честно привык ) зимой да бегать немного тяжелее но дышится легче и бегать на много проще. Каждый раз перед пробежкой говорю себе много не беги так нет вчера хотел 3 пробежать так нет, все 5.86 так и еще хочется, но уже времени нету столь много. Но сама большая дистанция по пересеченной местности 13,45. И очень кайфую во время бега
Личный опыт: как бег помогает мне выживать в мире, полном хаоса
Аватар автора комментария
Наталья Копылова13 часов назад

0 / 0

Круто! Как пишут в тиктоке, главное - не подумать, что я тоже так могу
Приключения Лазейки: как я с помощью вайбкодинга сделал свою первую браузерную игру
Давайте посчитаем. Как эффективно вести семейный бюджет

Давайте посчитаем. Как эффективно вести семейный бюджет

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