Skip to content

Repository files navigation

Trunook

Русский · English · 简体中文

Динамический вырез для MacBook: музыка, встречи, буфер обмена, полка для файлов и запросы к локальной модели — в чёлке, а не в отдельных окнах.

Вырез в работе

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

Жесты

Сочетания — все на ⌃⌥, эту пару macOS не занимает ни под что. Любое меняется в настройках или прямо в окне знакомства.

Сочетание Что открывает
⌃⌥C Меню быстрых команд
⌃⌥V История буфера обмена
⌃⌥S Полка для файлов
⌃⌥T Таймер и секундомер
⌃⌥M Нагрузка на систему
⌃⌥1 … ⌃⌥6 Слоты быстрых команд напрямую
⌃⇧1 … ⌃⇧9 Вставить запись буфера по номеру

Что умеет

  • Музыка. Трек, обложка, перемотка, полоса воспроизведения по контуру острова. Работает с любым плеером: сведения читаются у системы. Переключение — свайпом двумя пальцами.
  • Календарь и напоминания. Предупреждение за выбранное время, ссылка на встречу кнопкой, обратный отсчёт в чёлке. Задачи на сегодня из Things 3.
  • Управление онлайн-встречей. Микрофон, камера, демонстрация экрана, поднять руку, выход — по наведению, пока идёт разговор. Телемост, Google Meet, Zoom и Teams в браузере.
  • Буфер обмена. История копирований, вставка по номеру с клавиатуры.
  • Полка для файлов. Перетащите файлы на чёлку — они лягут на полку. Вытащить можно в любое окно, файл при этом переезжает.
  • Запросы к модели. Ollama на вашем же компьютере: ответ пишется прямо в вырезе, его можно скопировать или вставить в активное окно.
  • Быстрые команды. Шесть слотов с горячими клавишами: приложение, папка, ссылка, AppleScript, запрос к модели, команда из «Команд».
  • Таймер и секундомер. Готовые длительности, помидор на двадцать пять минут с перерывом после него. Пока идёт, чёлка раздвигается полоской со счётом — нажмите по ней, чтобы открыть панель. Время считается от момента запуска, поэтому не отстаёт, даже если ноутбук закрывали.
  • Нагрузка на систему. Процессор, память и диск с полосками заполнения. Нажмите по любому показателю — откроется Мониторинг системы.
  • Погода и питание. Значок с температурой в углу панели, плашки при смене погоды и при подключении зарядки.
  • Телесуфлер. Текст под самой чёлкой — там, где камера, — с оформлением и автопрокруткой. Читая с середины экрана, смотришь мимо объектива.
  • Чашка кофе. Кнопка рядом с погодой: пока включена, экран не гаснет и не блокируется. Нажатие открывает выбор срока прямо в вырезе — полчаса, час, полтора, два или без срока; там же виден отсчёт.

Интерфейс на русском, английском и китайском — по умолчанию как в системе.

Установка

Собрать из исходников — надёжный путь

git clone https://github.com/TruDevLab/Trunook.git
cd Trunook
make cert      # один раз: самоподписанный сертификат
make install   # собрать, подписать, положить в /Applications

Нужны Command Line Tools (xcode-select --install). Xcode не требуется.

Из готового образа

Скачайте .dmg из релизов, перетащите приложение в «Программы» и снимите карантин:

sudo xattr -r -c /Applications/Trunook.app

Ограничения

Подписи Apple нет

У проекта нет платной учётной записи разработчика. На чужом Mac Gatekeeper приложение не пропустит (spctl -a даёт rejected), нотаризация невозможна, App Store исключён. Отсюда и порядок установки выше: сборка из исходников проще — собранное своим сертификатом система вопросов не задаёт, а для образа карантин снимают руками.

Хелпер живёт в пространстве имён Apple

Сведения о треке macOS отдаёт через приватный MRMediaRemoteGetNowPlayingInfo, и с macOS 15.4 обычный процесс получает пустоту: доступ остался у процессов с идентификатором com.apple.controlcenter.*. Поэтому XPC-хелпер назван com.apple.controlcenter.TrunookHelper.

Приём не даёт доступа к чужим данным — он снимает ограничение на чтение состояния собственного проигрывателя. Apple может закрыть лазейку в любом обновлении: тогда исчезнут только названия треков, сам обход изолирован в отдельном сервисе.

Что уходит наружу

  • Погода — координаты, округлённые до сотой доли градуса (около километра), уходят на open-meteo.com. Это единственное обращение в интернет во всём приложении. Геопозицию можно не отдавать вовсе: назовите город в настройках или на шаге доступов в знакомстве — тогда разрешение на неё не спрашивается, а наружу уходит только набранное название.
  • Запросы к модели идут в Ollama на вашем же компьютере.
  • История буфера и полка остаются на машине: история в файле приложения, полка — ссылками на ваши же файлы.

Требования

  • MacBook с аппаратным вырезом. На внешних мониторах приложение не показывается.
  • macOS 14 и новее.
  • Для сборки — Command Line Tools.
  • Для запросов к модели — Ollama, отдельно.

Разработка

Устройство, технические находки и способы отладки — в DEVELOPMENT.md.

make run    # собрать, установить, запустить
make test   # тесты
make dmg    # образ

Лицензия

MIT.

About

Dynamic notch for the MacBook: music, meetings, clipboard history, a file shelf, a pomodoro timer, system load, weather, a teleprompter and local-model prompts — in the notch instead of separate windows. Pet the notch and it purrs.

Topics

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages