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

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

10 товаров с маркетплейсов, которые подарят радость на этой неделе

10 товаров с маркетплейсов, которые подарят радость на этой неделе

Nahodki AliExpress: samye interesnye i poleznye tovary nedeli

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

10 пар хороших кроссовок с AliExpress дешевле 5 000 рублей

10 пар хороших кроссовок с AliExpress дешевле 5 000 рублей

Надо брать: разборный мангал с усиленной конструкцией со скидкой 59%

Надо брать: разборный мангал с усиленной конструкцией со скидкой 59%

Велосипед Stern Energy 29"

Велосипед Stern Energy 29" отдают со скидкой 24% в «Спортмастере»

10 отличных MP3-плееров, чтобы слушать музыку где угодно

10 отличных MP3-плееров, чтобы слушать музыку где угодно

Надо брать: надёжный робот — мойщик окон от Polaris со скидкой 71%

Надо брать: надёжный робот — мойщик окон от Polaris со скидкой 71%

Всё в горошек: 11 вещей с трендовым принтом, который захватил соцсети

Всё в горошек: 11 вещей с трендовым принтом, который захватил соцсети

Это интересно
Как найти квартиру мечты с помощью ИИ: тестируем помощника от Яндекс Недвижимости

Как найти квартиру мечты с помощью ИИ: тестируем помощника от Яндекс Недвижимости

Как обновить квартиру: 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
Спасибо огромное за помощь!
Что вы могли пропустить
Как правильно мыть аэрогриль
Как правильно мыть аэрогриль
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 марта
Советы
Советы
3 кухонных прибора, которые помогут прокачать ваши кулинарные способности
3 кухонных прибора, которые помогут прокачать ваши кулинарные способности
0
25 марта
Советы
Советы

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

Аватар автора комментария
Existence Kether35 минут назад

0 / 0

Статья поднимает тему, которую действительно долго было не принято называть. Давление на женщин в вопросах деторождения — социальное, партнёрское, институциональное — существует и причиняет реальный вред. Хорошо, что об этом пишут. Но есть несколько мест, где аргументация подводит саму себя — и именно поэтому статью так легко отмахнуться тем, кто не хочет её слышать. Когда всё — насилие, ничто не насилие Самая уязвимая точка текста — это инфляция понятия. В одном концептуальном пространстве оказываются: неловкий вопрос на семейном ужине, таргетированная реклама подгузников, государственная политика занятости и физическое принуждение к беременности. Всё это называется «репродуктивным насилием». Проблема не в том, что некоторые из этих явлений не заслуживают критики — заслуживают. Проблема в том, что язык работает через различение. Когда одним словом описывается и «тётя спросила», и «партнёр проколол презерватив» — слово перестаёт нести информацию о тяжести. А это значит, что человек, столкнувшийся с реальным принуждением, теряет точный язык для описания своего опыта. Это парадокс: расширяя понятие из желания защитить больше людей, мы ослабляем защиту тех, кому она нужна острее всего. Более продуктивная рамка — различать социальное давление (дискомфорт, но не насилие), манипуляцию и принуждение в отношениях (серьёзно, требует называния) и институциональное принуждение (отдельный разговор о праве и политике). Не потому что одно «менее важно», а потому что разные явления требуют разных инструментов реакции. Симметрия — это не уступка, это последовательность Репродуктивное насилие со стороны женщины в отношении мужчины упомянуто в статье ровно затем, чтобы быть немедленно закрытым: «зато он платит алименты». Это риторически понятный ход, но интеллектуально нечестный. Лишение человека репродуктивного выбора — скрытая отмена контрацепции, ложь о невозможности забеременеть, отказ от аборта вопреки явному несогласию партнёра — это нарушение автономии. Финансовые последствия, которые следуют за этим, не ретроактивно превращают нарушение в норму: они просто добавляют к нему материальное измерение. Важно понимать: признание этого не является уступкой противникам концепции и не ослабляет защиту женщин. Наоборот, именно непоследовательность в применении принципа даёт оппонентам самый удобный рычаг. Если репродуктивная автономия — это ценность, она либо универсальна, либо это не ценность, а групповой интерес. Отстаивать универсальный принцип через избирательное применение стратегически проигрышно. Про «инстинкт» — тут наука интереснее, чем кажется Утверждение «материнского инстинкта не существует» верно по направлению, но сказано без опоры — и это легко атаковать. Между тем нейробиологические данные дают куда более сильный аргумент: механизмы привязанности к ребёнку действительно существуют на уровне мозга (перестройка префронтальной коры, окситоциновые системы), но они запускаются *в ответ* на уход, а не предшествуют ему в форме «желания родить». Одни и те же механизмы работают у биологических матерей, отцов и приёмных родителей. То есть точный тезис звучит не «инстинкта нет», а «то, что принято называть материнским инстинктом — это нейробиология привязанности, которая формируется через практику заботы и не имеет отношения к изначальному желанию иметь детей». Это не только точнее — это неопровержимее. Прочитав комментарии, ещё добавлю... «Феминистская повестка, надуманная проблема» Саботаж контрацепции в партнёрских отношениях — это не концепт из гендерных исследований. Это задокументированная практика с измеримыми последствиями для здоровья. Несогласие с политическим контекстом статьи — законное право, но оно не является аргументом против существования явления. Это называется ad hominem по источнику: «мне не нравится кто говорит, значит, то, что говорится неправда». «Природа так устроила» Апелляция к «естественному» как к нормативному — это одна из старейших логических ошибок (натуралистическая ошибка, если точно). Природа «устроила» также рак, паразитов и детскую смертность — никто не предлагает считать это идеалом. То, что нечто биологически возможно или статистически распространено, не создаёт моральной обязанности. Автономия — это как раз способность человека действовать вопреки биологической программе. «Демография, страна вымирает» Это реальная проблема, но аргумент применяется неверно. Страны с наиболее жёсткой пронаталистской политикой — включая советский опыт — демонстрируют краткосрочный всплеск и долгосрочную стагнацию или откат. Устойчивый рост рождаемости коррелирует с доступными яслями, нормальными декретными выплатами для обоих родителей, доступным жильём и уверенностью в будущем. Перекладывать демографическую проблему государства на репродуктивные решения частных людей — это не политика, это экстернализация ответственности. «Меня никто не заставлял, я счастлива в материнстве» Личный опыт — ценный источник, но не эпидемиологический аргумент. Это классическая ошибка выжившего: мы слышим тех, чей опыт сложился благополучно, и значительно реже — тех, кто оказался в ситуации давления или принуждения, потому что говорить об этом намного труднее. Чужое счастье не отменяет чужую боль. «Статья однобокая, про мужчин ничего» В этом конкретном пункте — справедливое замечание (см. выше). Но «статья непоследовательна» и «проблемы не существует» — это два совершенно разных тезиса. Первый — обоснованная критика. Второй — нелогичный вывод из первого. Репродуктивная автономия — это концепт, который стоит того, чтобы его отстаивать. Но отстаивать его эффективно можно только тогда, когда аргументация точная, симметричная и не даёт оппонентам законных зацепок. Этой статье до этого есть куда расти.
«Когда родишь?»: как у женщин отбирают право на собственное тело
Аватар автора комментария
ArtTour2 часа назад

0 / 0

Какой-то детский бред. Вы пустите домой хоть кого-нибудь, кто захочет что-то там у вас проверить? Вы е..нутые?
Почему поставить магнит на счётчик — плохая идея
Аватар автора комментария
Виктор Подволоцкий2 часа назад

0 / 0

да, легенда, ей лет 10, но всё ещё крута
«Ты не пройдёшь!»: 20 лучших стратегий в жанре Tower Defense на Android
Аватар автора комментария
Спиридонова Тмтьяна3 часа назад

0 / 0

Кошмарные жильцы
Чем опасны квартиранты: 9 страхов собственника
5 причин купить моющий пылесос для мягкой мебели и ковров Tefal Clean It IZ5020F0

5 причин купить моющий пылесос для мягкой мебели и ковров Tefal Clean It IZ5020F0

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