---
read_when:
    - Изменение поведения значка в строке меню
summary: Состояния и анимации значка в строке меню для OpenClaw в macOS
title: Значок в строке меню
x-i18n:
    generated_at: "2026-06-28T23:12:06Z"
    model: gpt-5.5
    postprocess_version: locale-links-v1
    provider: openai
    source_hash: 5497927721ff7486e9585a8a3edc2d5140408b2b0707acdcef2388e87bca20ec
    source_path: platforms/mac/icon.md
    workflow: 16
---

# Состояния значка в строке меню

Автор: steipete · Обновлено: 2025-12-06 · Область: приложение macOS (`apps/macos`)

- **Ожидание:** Обычная анимация значка (мигание, редкое покачивание).
- **Приостановлено:** Элемент статуса использует `appearsDisabled`; движения нет.
- **Голосовой триггер (большие уши):** Детектор голосового пробуждения вызывает `AppState.triggerVoiceEars(ttl: nil)`, когда слышит ключевое слово, удерживая `earBoostActive=true` во время записи фразы. Уши увеличиваются (1.9x), получают круглые отверстия для читаемости, затем сбрасываются через `stopVoiceEars()` после 1 с тишины. Срабатывает только из встроенного голосового конвейера приложения.
- **Работа (агент запущен):** `AppState.isWorking=true` включает микродвижение "суета хвоста/лап": более быстрое покачивание лап и небольшой сдвиг, пока работа выполняется. Сейчас переключается вокруг запусков агента WebChat; добавьте такой же переключатель вокруг других долгих задач при их подключении.

Точки подключения

- Голосовое пробуждение: runtime/tester вызывает `AppState.triggerVoiceEars(ttl: nil)` при триггере и `stopVoiceEars()` после 1 с тишины, чтобы соответствовать окну записи.
- Активность агента: устанавливайте `AppStateStore.shared.setWorking(true/false)` вокруг промежутков работы (уже сделано в вызове агента WebChat). Делайте промежутки короткими и сбрасывайте состояние в блоках `defer`, чтобы избежать зависшей анимации.

Формы и размеры

- Базовый значок рисуется в `CritterIconRenderer.makeIcon(blink:legWiggle:earWiggle:earScale:earHoles:)`.
- Масштаб ушей по умолчанию равен `1.0`; голосовое усиление задает `earScale=1.9` и включает `earHoles=true` без изменения общего кадра (шаблонное изображение 18×18 pt, отрисованное в Retina-буфер 36×36 px).
- Суета использует покачивание лап до ~1.0 с небольшим горизонтальным подергиванием; оно добавляется к любому существующему покачиванию в ожидании.

Поведенческие заметки

- Нет внешнего переключателя CLI/брокера для ушей/работы; держите это внутри собственных сигналов приложения, чтобы избежать случайного дребезга.
- Держите TTL короткими (&lt;10 с), чтобы значок быстро возвращался к базовому состоянию, если задание зависнет.

## Связанные материалы

- [Строка меню](/ru/platforms/mac/menu-bar)
- [Приложение macOS](/ru/platforms/macos)
