> ## Documentation Index
> Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Значок в строке меню

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

Область: приложение macOS (`apps/macos`). Отрисовка: `CritterIconRenderer.makeIcon(...)`. Связь анимации и состояний: `CritterStatusLabel` + `CritterStatusLabel+Behavior.swift`.

## Состояния

| Состояние | Условие срабатывания | Визуальное представление |
| - | - | - |
| Бездействие | По умолчанию | Обычная анимация моргания и покачивания; в открытых глазах сохраняется глянцевый блик |
| Приостановлено | `isPaused=true` | Антенны опущены («не на службе»), глаза открыты; движения отсутствуют |
| Сон | Gateway отключён или не настроен | Антенны опущены, а глаза закрываются веками `⌣ ⌣`; движения отсутствуют |
| Празднование | Сообщение отправлено (`sendCelebrationTick`) | Глаза примерно на 0,9 с превращаются в радостные дуги `∩ ∩`, одновременно происходит взмах ногой |
| Голосовая активация (уши) | Распознано слово активации | Антенны выпрямляются и вытягиваются вверх (`earScale=1.9`); после периода тишины возвращаются в исходное положение |
| Работа | `isWorking=true` или активный `IconState` | Более быстрое движение ног (от `legWiggle` до `1.0`) с небольшим смещением по горизонтали поверх обычного покачивания |

Поверх того же значка существа может отображаться индикатор активности инструмента (плашка с символом SF, например `chevron.left.slash.chevron.right` для выполнения), когда в сеансе активно задание или инструмент. Этот индикатор поступает из `IconState`/`ActivityKind`; полную модель состояний см. в разделе [Строка меню](https://docs2.openclaw.ai/ru/platforms/mac/menu-bar.md).

## Антенны при голосовой активации

* Запуск: `AppStateStore.shared.triggerVoiceEars(ttl: nil)`, вызывается из конвейера захвата голосовой активации (`VoiceWakeRuntime`) и из средств отладки и тестирования голосовой активации (`VoiceWakeTester`, `VoiceWakeOverlayController`).
* Остановка: `stopVoiceEars()`, вызывается при завершении захвата.
* Период тишины перед завершением: обычно `2.0s`, либо `5.0s`, если было распознано только слово активации и за ним не последовала речь (`VoiceWakeRuntime.silenceWindow` / `triggerOnlySilenceWindow`).
* В активированном состоянии таймеры моргания, покачивания, движения ног и антенн при бездействии приостанавливаются (`earBoostActive` управляет выполнением задачи анимации в `CritterStatusLabel+Behavior`).

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

* Холст: шаблонное изображение размером 18x18 pt, отрисовываемое в растровый буфер размером 36x36 px (2x), чтобы значок оставался чётким на дисплеях Retina.
* По умолчанию масштаб антенн равен `1.0`; при голосовой активации устанавливается `earScale=1.9` без изменения общего размера рамки.
* `antennaDroop` (0–1) опускает антенны для состояний приостановки и сна.
* Быстрое движение ног использует значения от `legWiggle` до `1.0` с небольшим покачиванием по горизонтали.

## Примечания о поведении

* Внешнего переключателя CLI или брокера для антенн и рабочего состояния нет; оба состояния управляются внутренними сигналами приложения (`AppState.setWorking`, `AppState.triggerVoiceEars`), чтобы избежать случайного переключения.
* Для любого нового TTL задавайте короткое значение (значительно меньше 10 с), чтобы значок быстро возвращался к исходному состоянию, если задание зависнет.

## Связанные разделы

* [Строка меню](https://docs2.openclaw.ai/ru/platforms/mac/menu-bar.md)
* [Приложение macOS](https://docs2.openclaw.ai/ru/platforms/macos.md)
