Виджеты для Mac OS. Виджеты для Mac — пять полезных приложений для Центра уведомлений OS X Yosemite

Если вы не пользуетесь Dashboard на своем Mac, то почему бы полностью не отключить его. Функциональное приложение OS X, которое занимает ценные мегабайты в памяти компьютера, можно легко деактивировать. Но перед этим стоит задать себе вопрос: а как часто и с какой целью я использую дополнительное рабочее пространство и какие виджеты мне действительно нужны.

Если из всех виджетов, доступных для Dashboard, вы используете только погоду или калькулятор, вы можете без труда найти им замену. Например, чтобы узнать прогноз, можно скачать утилиту . Программа отлично справляется со своими обязанностями и не требует для работы «приборную панель». Аналоги есть и у других виджетов. Поэтому, Dashboard можно смело отключить.


Деактивировать панель виджетов в OS X очень просто. Для этого нужно использовать одну команду в Терминале.

Как отключить Dashboard в OS X

Шаг 1 : Откройте стандартное приложение Терминал из папки Утилиты.

Шаг 2 : Выполните команду для отключения Dashboard.

defaults write com.apple.dashboard mcx-disabled -boolean YES

Шаг 3 : Перезагрузите док, чтобы изменения вступили в силу.

killall Dock

Это все! Теперь Dashboard выгружен из памяти вашего Mac и не занимает ценные мегабайты. Если вы все-таки передумаете и решите вернуть обратно эту функцию в OS X, воспользуйтесь той же командой, но вместо YES поставьте NO:

defaults write com.apple.dashboard mcx-disabled -boolean NO

Не забудьте в конце перезагрузить док.

  • Tutorial

Здравствуйте, хабравчане-маководы!

Сегодня мы с вами попробуем разобраться в азах создания виджета для Dashboard в Mac OS X. Нам понадобится программа Dashcode, предназначенная как раз для этого.

Для начала немного теории. Виджет в Dashboard - это специально сформировання веб-страничка, упакованная в бандл вместе со всем ресурсами. Ну, и немного служебной информации в довесок. Соответственно, используемый язык программирования - JavaScript. Если Вы уже знакомы с ним, а так же с HTML/CSS (хотя это вряд ли понадобится), то Вы уже способны написать простенький виджет. Если же нет, то не стоит расстраиваться, этот язык очень прост и интуитивно понятен, разобраться с ним можно достаточно быстро. Далее я буду считать, что с JS читатель более-менее знаком. Сама же статья рассчитана на новичков, так что прошу не ругать за «слишком простое изложение и детальное разжёвывание элементарных вещей». Кроме того, за дизайн тоже прошу не пинать - ну не дизайнер я, не дизайнер! Если кто хочет помочь с этим делом - welcome =)

Для удобства, все исходники (а так же готовый к использованию виджет) выложены на гитхаб, ссылка в конце статьи. Но не спешите просто скачивать их! Лучше потратить немного времени и разобраться, как создать это всё самому.

Итак, приступим. В качестве цели для экспериментов я, разумеется, выбрал наш любимый хабр. Мы будем шаг за шагом делать виджет, отображающий карму, рейтинг и позицию в рейтинге хабралюдей выбранного хабраюзера.


Такой виджет (ну, очень похожий) уже был создан хабратоварищем neoromantic аж в 2007 году, но ссылки на скачивание не рабочие, а кроме того, та статья не содержала практического руководства по созданию подобных виджетов.

Восстановим справе Восполним эти недостатки.

Создадим пустой проект. Для этого запустим Dashcode и кликнем в нужные места. Процесс тривиален.

Что же мы видим? Базовый виджет имеет основное и вспомогательное состояния (соответственно, front и back в левой панели). Первое отображается в обычном режиме работы, второе - для настройки параметров виджета. Переключаться между ними можно выбирая соответствующие пункты в списке компонент слева. Мы можем смело удалить всё лишнее, кроме кнопок «info» и «Done», которые служат для переключения между основным и вспомогательным состояниями. Далее, для простоты, будем называть это лицевой и тыльной сторонами виджета.

Теперь на лицевую сторону нашего виджета (без единой строчки кода!) кидаем нужные компоненты: несколько надписей. Для этого открываем библиотеку комонент - кнопка Library справа вверху - и перетаскиваем на виджет компоненты типа «Text». Теперь открываем Inspector (так же кнопка справа вверху) и с его помощью настраиваем размеры, цвета и так далее для нашего виджета. С его же помощью зададим осмысленные имена нашим надписям - для более удобного доступа из кода.

На тыльную сторону кинем надпись и поле ввода. Ну, и ещё картинку - для красоты. И в итоге получаем примерно следующее:

Что ж, неплохо, наш GUI уже готов! Можем жать Cmd+R и потыкать на кнопки (i) и Done, любуясь эффектом переворота виджета.

Но одного GUI нам мало, так что переходим к логике. Для этого слева вверху жмём на кнопку View и выбираем в выпадающем списке Source Code. И можем уже лицезреть наш автоматически сгенерированный JavaScript-код. И смело начинаем его править!

Для начала определимся с «архитектурой» нашего виджета. Мы будем по таймеру запрашивать через API хабра данные о пользователе, парсить их и отображать карму и рейтинг на лицевой стороне виджета. Для этого объявляем глобальную переменную updateTimer в начале файла main.js, создаём функции startTimer(msec) и stopTimer() , которые будут с этим таймером работать. Так же создадим функцию updateStats() , которая будет вызываться по таймеру.

Function startTimer(msec) { updateTimer = setTimeout("updateStats()", msec); } function stopTimer() { clearTimeout(updateTimer); } function updateStats() { alert("It works!"); startTimer(updateInterval); }
В функцию show() вставим вызов startTimer(5000) для запуска таймера при показе виджета, а в функцию hide() , соответственно, вставим stopTimer() для экономии ресурсов когда виджет не показан (Dashboard не активна). Теперь мы можем запустить наш виджет и увидеть в консоли (Cmd+Alt+1) вывод «It works!» каждые 5 секунд.

Но нас ведь не интересует такой вздор, мы хотим по таймеру дёргать карму и рейтинг! Так что в функции updateStatus() вместо алерта мы будем вызывать функцию execStatsRequest() (API хабра советует не дёргать данные о пользователе чаще, чем раз в минуту, так что увеличим заодно интервал).

Теперь дело за HTTP-запросами к API хабрахабра. Создаём новые функции - execStatsRequest() и processStatsRequest(), которые будут служить для запуска и обработки запросов. Вот как они выглядят у меня:
function execStatsRequest() { if (userName().length > 0) { var Url = "http://habrahabr.ru/api/profile/" + userName() + "/"; alert("User: " + userName() + "\nURL: " + Url); xmlHttp = new XMLHttpRequest(); xmlHttp.onreadystatechange = processStatsRequest; xmlHttp.overrideMimeType("text/xml"); xmlHttp.open("GET", Url, true); xmlHttp.send(); } else { resetStats(); } } function processStatsRequest() { if (xmlHttp.readyState == 4 && xmlHttp.status == 200) { alert("xml is " + xmlHttp.responseXML); if (xmlHttp.responseXML == null) { resetStats(); } else { alert(xmlHttp.responseText); var error = xmlHttp.responseXML.getElementsByTagName("error"); if (error != null) { alert("Some error occured!"); resetStats(); setLogin("<" + userName() + " not found>"); return; } var login = xmlHttp.responseXML.getElementsByTagName("login").firstChild.nodeValue; var karma = xmlHttp.responseXML.getElementsByTagName("karma").firstChild.nodeValue; var rating = xmlHttp.responseXML.getElementsByTagName("rating").firstChild.nodeValue; var position = xmlHttp.responseXML.getElementsByTagName("ratingPosition").firstChild.nodeValue; setLogin(login); setKarma(karma); setRating(rating); setPosition(position); } } }
Здесь мы формируем URL запроса, создаём объект типа XMLHttpRequest, и с его помощью запрашиваем методом GET наши данные. Что примечательно, приходится насильно ставить ответу MIME-тип «text/xml» , ибо хабра-апи возвращает почему-то «text/html». А в функции processStatsRequest() мы парсим полученный в XML ответ. При этом, мы проверяем его на наличие ошибки - и уведомляем об этом пользователя.

Тут стоит отвлечься от кода и настроить сам виджет - разрешить ему работать с сетью. Для этого в левой панели прокручиваем список элементов вниз и видим пункт Widget Attributes. Здесь просто ставим галочку «Allow Network Access». Так же можно настроить id виджета и его версию. Теперь вернёмся к коду.

Функции setLogin() , setKarma() и иже с ними отображают передаваемую в них строку в нужных полях лицевой стороны. Они были созданы для удобства и выглядят однотипно, вроде того:

Function setLogin(login) { document.getElementById("userName").innerText = login; }
Функция же resetStats() устанавливает дефолтные значения для всех полей. А функции setUserName() и userName() служат обёрткой над полем ввода имени хабраюзера на тыльной стороне виджета:

Function userName() { return document.getElementById("nameEdit").value; } function setUserName(name) { document.getElementById("nameEdit").value = name; }
Что ж, виджет почти готов. Почему почти? Да потому что нам надо бы ещё сохранять в настройках введённое имя пользователя. Для этого пишем функции loadPrefs() и savePrefs() .

Var preferenceKey = "habraUserName"; function loadPrefs() { var name = widget.preferenceForKey(widget.identifier + "-" + preferenceKey); alert(widget.identifier + "-" + preferenceKey); alert("name from preferences: " + name); if (name != null) setUserName(name); } function savePrefs() { widget.setPreferenceForKey(userName(), widget.identifier + "-" + preferenceKey); }
Эти функции целесообразно вызывать соответственно в функциях show() и hide() . Настройка будет уникальна для каждого виджета, что позволяет накидать на Dashboard виджеты с информацией по нескольким пользователям.

Ну, теперь уж точно виджет готов к использованию. Но нет предела совершенству! Локализуем теперь наш виджет, дабы иметь русскую и английскую версии. Вы так же можете сделать (как домашнее задание) локализацию на французский и японский языки.

Переходм к нашей лицевой стороне, вызываем инспектор. Теперь поочерёдно выделяем наши надписи и в разделе Localization инспектора выставляем в поле Value значение на английском языке. Они, вероятно, будут совпадать с предустановленными уже значениями поля Key. Эти значения будут внесены в дефолтную (английскую) локализацию, что можно увидеть в файле en.lproj/localizedStrings.js .

Теперь добавим русскую локализацию. Переходм в Widget Attributes и в разделе Localization добавляем (в левом списке) русский язык. Выбираем его, и теперь в правом списке можем вводить локализованные строки.


Эти значения, соответственно, будут прописаны в ru.lproj/localizedStrings.js .

Собственно, вот и всё, можем запускать наш виджет и любоваться своей (или чужой) кармой! Чтобы установить виджет в Dashboard, нужно выбрать Run & Share в левой панели и выбрать Save to Disk или Deploy to Dashboard - в зависимости от наших потребностей.

Если хочется скачать уже готовый виджет, то милости прошу.

Подборка праздничных обоев опубликована сегодня неслучайно. Во-первых, сегодня канун католического Рождества: русскоязычных католиков (или тех, кто хотя бы понимает по-русски) наверняка немало. А во-вторых, в следующую пятницу практически всем будет не до обоев. 🙂 Ну, и в-третьих, нужно настраиваться на новогоднее настроение заранее, чтобы с первым звоном бокалов с шампанским в голове были только радостные мысли и надежды на лучшее.

Бесплатный виджет Dashboard, позволяющий создавать разнообразные списки дел. Благодаря интеграции с iCal и Apple Mail собирает всю необходимую для пользователя информацию в одном месте. DoBeDo имеет приятный простой дизайн и может менять тему оформления.

Не совсем виджет, но эта программа тесно связана с Dashboard. Все дело в том, что Dasher предназначен всего для одной простой функции, а именно, автоматически показывать Dashboard через определенный период времени. Это очень удобно, ведь информация из виджетов бывает полезна, а самостоятельно открыть Dashboard иногда просто забываешь.

Виджет — мини-программа для быстрого доступа к ключевым возможностям приложений. В 2014 году Apple представила свое видение виджетов — причем не только для мобильной iOS , но и для настольной OS X . В этой статье мы расскажем о пятерке виджетов, которые действительно стоит попробовать на своем Мас .

Вконтакте

Battery Diag

Свежая версия утилиты получила виджет — и научилась выводить в Центр уведомлений полезную информацию: уровень заряда батареи, время до разряда и используемый источник питания (от розетки или от аккумулятора). Как и в штатном индикаторе, есть возможность отображать состояние, когда ноутбук работает от сети, но устройство при этом не заряжается.

Countdowns

Виджет для создания обратного отсчета времени. Для чего это нужно? К примеру, вам необходимо сдать реферат до завтрашнего дня — и система неумолимо будет напоминать, сколько именно времени у вас в распоряжении. Скачать приложение можно абсолютно бесплатно, если понравится — приобрести при помощи встроенной покупки.

Monity

И еще одна полезная утилита для тех, кому нужно знать о своем «железе» всё. Виджет для Центра уведомлений отображает информацию об использовании процессора, RAM, загруженности сети и жестких дисков.

PhotoDesk

Instagram любят все! Вот только что общего имеет «инста» и MacBook? Казалось бы, ничего — но достаточно посмотреть на эту программу, чтобы изменить свое мнение. PhotoDesk удобен сразу по двум причинам — это и клиент для Mac, и приложение с виджетом для Центра уведомлений. Программа всегда подскажет, кто какую фотографию выложил и какую прокомментировал. Еще два бонуса — возможность наслаждаться фотографиями из Instagram на большом экране и изучать детальную пользовательскую статистику.

AirMail 2.0

Программа для тех, кто не совсем доволен функциональными возможностями и внешним видом . Здесь — современный, даже несколько необычный интерфейс. Впрочем, интересен даже не столько он, сколько практичный виджет для Центра уведомлений. Он показывает пять последних писем. На них можно сразу же ответить, удалить ненужные и перейти к письму в приложении.

А какими виджетами для Mac пользуетесь (и пользуетесь ли ими вообще) вы, уважаемые читатели? Поделитесь своим опытом в комментариях!

У подавляющего большинства владельцев Mac в центре уведомлений уже не первый месяц копятся тучи ненужных уведомлений разных программ. А функция на самом полезная, позволяет выполнить небольшие действия, не запуская для этого дополнительные программы, а просто сделав свайп влево. Следующие 10 виджетов призваны сделать центр уведомлений в OS X Yosemite несколько удобнее.

Just Calendar

По умолчанию Apple не предлагает вам полноценный календарь, ограничиваясь стандартным отображением текущей даты и дня недели. Just Calendar отлично вписывается в концепцию минимализма, предлагая удобный, обладающий базовой функциональностью календарь.

Countdowns

Дедлайн, день рождения друга, очередной праздник или даже годовщина ваших отношений - обо всём этом довольно легко можно забыть в ежедневной рабочей рутине. А дожидаться праздников, отсчитывая оставшиеся до них дни, вдвойне приятнее. И это всего несколько причин, почему стоит скачать бесплатный Countdowns уже сейчас.

Battery Diag

Ёмкие долгоиграющие аккумуляторы - одно из преимуществ Macbook. Для тех, кто беспокоится о здоровье своей , количестве циклов перезарядки, температуре, исходной и текущей ёмкости, Battery Diag подойдёт наилучшим образом. Выглядит он красивее, нежели аналогичные программы или виджеты Dashboard, а то, что его можно скачать бесплатно (ограниченное время) и получить доступ к информации в один свайп - ещё один аргумент в пользу Battery Diag.


Keypad

Этот виджет использует ещё одну крутую функцию OS X Yosemite - режим Continuity. Ранее звонки можно было совершать только из Facetime, но Keypad добавляет эту возможность непосредственно в центр уведомлений. Одно поле для ввода номера и три кнопки: Call, Redial, Open App, - достаточный минимум для быстрого и удобного использования этой функции.


Lyrical

Обычно, когда вы слушаете музыку с iTunes, всё, что отображается в центре уведомлений - название песни, которая играет, и её исполнитель. Если этого вам недостаточно, скачайте Lyrical. Он добавит не только обложку проигрываемого альбома, управление воспроизведением, рейтингом трека и громкостью, но и текст песни.


AirMail

По праву можно считать одним из лучших почтовых клиентов для OS X. Удобный и красивый, с добавлением собственного виджета во второй версии он стал ещё лучше. Функциональность минимальная, но её более чем достаточно для того, чтобы в большинстве ситуаций забыть о приложении на панели состояния. Непосредственно в центре уведомлений отображается адресант и тема сообщения, открыть которое можно простым нажатием, а также три кнопки: «Ответить», «Отправить в архив» и «Удалить». Виджет доступен вместе с приложением, которое обойдётся вам в $10.


iStat Mini

Этот виджет собирает актуальные данные о загруженности памяти, процессора, внутреннего хранилища и состоянии сети. iStat Mini является минималистичной мини-версией iStat для Dashboard. Впрочем, это не мешает ему быть полезным не меньше своего старшего брата.

Swift Note

Swift Note - это небольшой заметочник для центра уведомлений. Он стоит символичный $1 и будет удобен в случаях, когда нужно сохранить для себя важную, но краткосрочную информацию или напоминание, которые не требуют запуска полноценного Calendar или Reminders. Можно создавать неограниченное количество заметок и менять их цвета в пределах шести стандартных вариантов. Аналогичный виджет, кстати, можно установить и в Dashboard.

Coinverter

  • Сергей Савенков

    какой то “куцый” обзор… как будто спешили куда то