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

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

Melochi do 1 000 rublej

15 мелочей до 1 000 рублей, которые делают жизнь удобнее

120 klassnyh podarkov podrostku na Novyj god

120 классных подарков подростку на Новый год

Компактный перфоратор от DeWalt со скидкой 60%

Надо брать: компактный перфоратор от DeWalt со скидкой 60%

Планшет 2025 года от HONOR отдают со скидкой 54%

Планшет 2025 года от HONOR отдают со скидкой 54%

30 nedorogih novogodnih podarkov

30 недорогих новогодних подарков

Как максимально сэкономить на AliExpress в ноябре

Как максимально сэкономить на AliExpress в ноябре

Nahodki AliExpress: 20 samyh poleznyh i interesnyh tovarov oktyabrya

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

120 idej podarkov dlya «Tajnogo Santy»

120 идей подарков для «Тайного Санты»

Это интересно
Как покупать продукты рационально: полезная инструкция

Как покупать продукты рационально: полезная инструкция

Реклама
Не просто плохое настроение: 6 фактов о депрессии, которые нужно знать каждому

Не просто плохое настроение: 6 фактов о депрессии, которые нужно знать каждому

Как найти работу, где помогают расти и поддерживают на старте

Как найти работу, где помогают расти и поддерживают на старте

Как выбрать тренера для ребёнка: 7 признаков классного профессионала 

Как выбрать тренера для ребёнка: 7 признаков классного профессионала 

Комментарии
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
2 ноября
Ликбез
Советы
Правда ли контейнер пылесоса надо чистить сразу после уборки
Правда ли контейнер пылесоса надо чистить сразу после уборки
0
25 октября
Советы
Советы
Как отличить хрусталь от стекла
Как отличить хрусталь от стекла
0
24 октября
Ликбез
Советы
Как избавиться от запаха канализации
Как избавиться от запаха канализации
0
18 октября
Ликбез
Советы
3 вопроса, чтобы расхламить шкаф с одеждой без лишних усилий
3 вопроса, чтобы расхламить шкаф с одеждой без лишних усилий
0
12 октября
Советы
Советы
Нейлон или полиэстер — что лучше для куртки
Нейлон или полиэстер — что лучше для куртки
0
11 октября
Ликбез
Советы
Как это сделать: научить ребёнка говорить «нет» незнакомцам в интернете
Как это сделать: научить ребёнка говорить «нет» незнакомцам в интернете
0
7 октября
Советы
Советы
Как выбрать одеяло для комфортного сна
Как выбрать одеяло для комфортного сна
0
4 октября
Ликбез
Советы
Где растёт клюква и когда её собирать
Где растёт клюква и когда её собирать
0
30 сентября
Ликбез
Советы
Как защитить ребёнка в интернете: 3 совета для дальновидных родителей
Как защитить ребёнка в интернете: 3 совета для дальновидных родителей
0
30 сентября
Советы
Советы
Apple объяснила царапины на iPhone 17 Pro: это не дефект, а следы от MagSafe-стойки
Apple объяснила царапины на iPhone 17 Pro: это не дефект, а следы от MagSafe-стойки
0
25 сентября
Новости
Советы
Чем отмыть руки от грецкого ореха
Чем отмыть руки от грецкого ореха
0
23 сентября
Ликбез
Советы
О чём стоит знать до рождения ребёнка? Рассказывают опытные родители
О чём стоит знать до рождения ребёнка? Рассказывают опытные родители
0
17 сентября
Советы
Советы
Вышел трейлер фильма «Дорогая, я уменьшаюсь» — про человека, который становится меньше спичечного коробка
Вышел трейлер фильма «Дорогая, я уменьшаюсь» — про человека, который становится меньше спичечного коробка
0
16 сентября
Советы
Советы
Как пользоваться посудомоечной машиной правильно
Как пользоваться посудомоечной машиной правильно
0
13 сентября
Ликбез
Советы

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

Аватар автора комментария
Ирина25 минут назад

0 / 0

Он недавно улетел отсюда. Задолбали
Комету 3I/ATLAS впервые сняли на любительскую оптику — она уже видна с Земли
Аватар автора комментария
Камила Станишевская32 минуты назад

0 / 0

А где автор статьи?? Количество просмотров людьми? Что за ноунейм от робота и тёмный лес...
6 книг, которые помогут лучше понять свои эмоции
Аватар автора комментария
Камила Станишевская37 минут назад

0 / 0

Зачем читать такие статьи?!...чтобы этим задаваться, когда сидишь один в отношениях только с компом и телефоном.
10 фраз-отмазок в отношениях и что они значат на самом деле
Аватар автора комментария
Камила Станишевская39 минут назад

0 / 0

Не кшьте мозг! Надеюсь, вам все должны%))
10 фраз-отмазок в отношениях и что они значат на самом деле
Задача — дойти до школы самому: как подготовить ребёнка и убедиться, что всё будет в порядке 

Задача — дойти до школы самому: как подготовить ребёнка и убедиться, что всё будет в порядке  

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