Today Scripts: виджеты для Notification Center в Yosemite

Если есть кусочек информации, который вы хотите видеть регулярно — вам нужен Today Scripts (скачайте приложение отдельно). Это простое Mac-приложение даёт возможность добавить практически любую информацию в новый Центр уведомлений Yosemite — достаточно правильной команды.

Коротко: Today Scripts выполняет shell-команды и показывает их вывод как виджет в табе «Сегодня». Если вы когда‑то использовали GeekTool или Übersicht для красивых виджетов на рабочем столе, вы поймёте мощь подхода: теперь те же идеи можно поместить в Notification Center.
Важно: Today Scripts — это интерфейс для запуска команд. Команда выполняется с теми правами и окружением, которые задаёт приложение, поэтому следуйте советам по безопасности ниже.
Что такое Today Scripts (одно предложение)
Today Scripts — приложение, которое берёт вывод любой команды в Terminal и отображает его как виджет в Центре уведомлений OS X Yosemite.
Как это работает — краткая методология
- Установите Today Scripts и откройте его.
- Создайте новый скрипт/виджет и в поле команды вставьте нужную shell-команду.
- Настройте частоту обновления и заголовок виджета.
- Добавьте виджет в Центр уведомлений через «Изменить» в табе Сегодня.
Критерии приёмки
- Виджет отображается в Центре уведомлений.
- Вывод команды читаем и не ломает верстку.
- Частота обновления соответствует ожиданиям (например, не чаще 30s для тяжёлых команд).
Готовые команды и примеры
Ниже — подборка команд, которые я использовал. Просто вставьте их в Today Scripts и добавьте в Центр уведомлений.
Календарь на месяц с выделенной текущей датой
Иногда нужно быстро узнать день недели для даты или посмотреть календарь целиком. Команда cal показывает текущий месяц в Terminal; следующая версия выделит текущую дату цветом:
cal | grep --before-context 6 --after-context 6 --color -e " $(date +%e)" -e "^$(date +%e)" Результат — компактный календарь с подсказкой, где сегодня.
Источник: Command Line Fu.
Время в разных часовых поясах (списком)
Вместо циферблатов удобнее список с именами городов и временем:
echo "Denver `export TZ='US/Mountain';date +'%\-l:%M %p';unset TZ`"
echo "London `export TZ='Europe/London';date +'%\-l:%M %p';unset TZ`"
echo "Paris `export TZ='Europe/Paris';date +'%\-l:%M %p';unset TZ`"
echo "Mumbai `export TZ='Asia/Kolkata';date +'%\-l:%M %p';unset TZ`"
echo "Sydney `export TZ='Australia/Sydney';date +'%\-l:%M %p';unset TZ`" Хочется другие зоны? Проверьте список tz database (например, в Википедии) и подставьте нужные значения после TZ=.
Вдохновлено виджетом для Übersicht.
Что в буфере обмена
Быстрое отображение содержимого clipboard:
pbpaste Цитата дня с BrainyQuote
Немного мотивации между задачами:
curl --silent www.brainyquote.com/quotes_of_the_day.html | egrep '(span class="bqQuoteLink")|(div class="bq-aut")' | sed -n '1p; 2p; ' | sed -e 's/<[^>]*>//g' Этот однострочник вытаскивает «Quote Of The Day» и показывает его в Центре уведомлений.
Быстрый обзор системы с iStats

Если установлен iStats, просто укажите команду “istats” — и вы получите данные по CPU, вентиляторам и батарее. Установка iStats требует базовых навыков работы в Terminal.
Статус батареи
Показывает процент заряда и время до полного заряда/разряда:
pmset -g batt | { read; read n status; echo "$status"; } Источник: вики Today Scripts.
Приложения-лидеры по использованию RAM
Для быстрого понимания, кто ест память:
ps xmo rss=,pmem=,comm= | while read rss pmem comm; ((n++<5)); do
size="$[rss/1024]";
short=$[4-${#size}];
size="(${size}M)";
i=0;
while ((i++ < short)); do size=" $size"; done;
pmem="${pmem%%.*}"
if (($pmem >= 20)); then color=$'\e[31m';
elif (($pmem >= 10)); then color=$'\e[33m';
else color=$'\e[32m ';
fi;
echo "$color$pmem% $size $(basename "$comm")"$'\e[0m'"";
done (Сохранён формат оригинальной команды; цвета помогают быстро идентифицировать тяжёлые процессы.)
Источник: Today Scripts Wiki.
Приложения-лидеры по CPU
Как выше, но для загрузки процессора:
ps xro %cpu=,comm= | while read cpu comm; ((i++<5)); do echo $cpu% $(basename "$comm"); done Источник: Today Scripts Wiki.
Внешний (публичный) IP
Быстрая команда, чтобы узнать ваш внешний IP:
curl ifconfig.me Источник: commandlinefu.com.
Примечание: если вы на VPN, вывод покажет адрес VPN-провайдера — ожидаемое поведение.
Альтернативы и когда это не подходит
- Если вам нужны «красивые» графические виджеты прямо на рабочем столе, рассмотрите GeekTool или Übersicht.
- Если вы работаете в более новых версиях macOS, поведение Центра уведомлений может отличаться — проверьте совместимость Today Scripts с вашей версией.
- Для графиков и долгосрочного мониторинга лучше использовать специализированные инструменты (например, Prometheus/Graphite на серверах) — Today Scripts хорош для быстрых срезов и напоминаний.
Ментальные модели и эвристики
- «Terminal → Виджет»: думайте о Today Scripts как о трубопроводе, который превращает текстовый вывод команды в виджет.
- Не делайте виджетов тяжёлыми: чем дольше выполняется команда, тем хуже UX. Для тяжёлых операций используйте кеширование или более редкие обновления.
- Минимизируйте побочный вывод: оставьте только то, что полезно при быстром взгляде.
Безопасность и конфиденциальность
Важно
- Не вставляйте и не запускайте команды, если вы не понимаете, что они делают.
- Не храните секреты (пароли, токены) в командах виджетов. Любой пользователь с доступом к вашей учётной записи может увидеть команду или её вывод.
- Ограничьте частоту обновления для команд, обращающихся к интернету, чтобы избежать утечек или нежелательной нагрузки.
- При использовании внешних сервисов (curl к сайтам) учитывайте политику приватности сервиса.
Шаблоны и сниппеты — быстрого старта
Короткие шаблоны, которые можно скопировать и настроить:
- Список задач из файла todo.txt:
cat ~/todo.txt | sed -n '1,10p' - Простейший таймер обратного отсчёта (пример использования с скриптом):
# файл ~/bin/countdown.sh
SECONDS=3600
while ((SECONDS>0)); do
echo "Осталось $SECONDS секунд"
sleep 60
doneЗатем в Today Scripts: /bin/bash ~/bin/countdown.sh
- Быстрый доступ к сегодняшним событиям с iCalBuddy (если установлен):
iCalBuddy -n -nc -li 3 eventsToday (iCalBuddy — отдельно устанавливаемая утилита.)
Роли и чек-листы
Для администратора macOS
- Проверить права запуска Today Scripts.
- Убедиться, что обновления ОС не ломают интеграцию.
- Документировать используемые команды.
Для продвинутого пользователя
- Настроить цветной вывод для процессов.
- Использовать текстовые парсеры (awk, sed) для читаемости.
- Настроить частоту обновлений под нагрузку.
Для обычного пользователя
- Добавить полезные вещи: погода, часовые пояса, быстрый календарь.
- Не копировать сложные команды без понимания.
Критерии приёмки для нового виджета
- Виджет добавлен и виден в Центре уведомлений.
- Команда завершается за разумное время (<10 s для интерактивных виджетов).
- Вывод читаем на экране без горизонтальной прокрутки.
- Нет утечек секретов в выводе.
Диаграмма принятия решений (простая)
flowchart TD
A[Хочу добавить информацию в Notification Center?] --> B{Нужен текст или графика?}
B -->|Текст| C[Today Scripts 'команда -> вывод']
B -->|Графика| D[Универсальные виджеты: Übersicht / GeekTool]
C --> E{Нужен частый апдейт?}
E -->|Да| F[Оптимизировать команду, уменьшить частоту]
E -->|Нет| G[Добавить виджет и настроить расписание]Часто задаваемые вопросы
Что такое Today Scripts?
Today Scripts — приложение для отображения вывода shell-команд в Центре уведомлений OS X Yosemite.
Как добавить свою команду?
Откройте Today Scripts, создайте новый виджет, вставьте команду в поле ввода, сохраните и добавьте виджет в таб «Сегодня» через «Изменить».
Безопасно ли запускать команды через Today Scripts?
Безопасность зависит от команды. Не вставляйте неизвестные или подозрительные команды. Не храните секреты в командных строках.
Итог и рекомендации
Today Scripts — простой и гибкий способ сделать Центр уведомлений действительно информативным. Используйте его для быстрых срезов состояния системы, простых напоминаний и удобных справочных выводов. Помните о безопасности, оптимизируйте команды и не перегружайте интерфейс тяжёлыми операциями.
Поделитесь своими командами ниже — какие виджеты добавите вы?
Похожие материалы
Установка Windows 10 в KVM на Linux
Как оценить срок службы SSD и продлить его
Double Tap на старых Apple Watch — как включить
Как перенести секретные чаты Telegram на Android
Как разобрать и почистить контроллер Xbox One