---
read_when:
    - การเปลี่ยนลักษณะการทำงานของไอคอนแถบเมนู
summary: สถานะและภาพเคลื่อนไหวของไอคอนแถบเมนูสำหรับ OpenClaw บน macOS
title: ไอคอนแถบเมนู
x-i18n:
    generated_at: "2026-05-06T09:22:27Z"
    model: gpt-5.5
    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 ที่เรนเดอร์ลงใน backing store Retina ขนาด 36×36 px)
- การวิ่งลนใช้การกระดิกขาสูงสุดประมาณ ~1.0 พร้อมการสั่นแนวนอนเล็กน้อย; เป็นการเพิ่มทับจากการกระดิกขณะว่างที่มีอยู่

หมายเหตุเชิงพฤติกรรม

- ไม่มีตัวสลับ CLI/broker ภายนอกสำหรับหู/การทำงาน; ให้คงไว้ภายในสัญญาณของแอปเองเพื่อหลีกเลี่ยงการกระพือโดยไม่ตั้งใจ
- ตั้ง TTL ให้สั้น (&lt;10s) เพื่อให้ไอคอนกลับสู่ค่าพื้นฐานอย่างรวดเร็วหากงานค้าง

## ที่เกี่ยวข้อง

- [แถบเมนู](/th/platforms/mac/menu-bar)
- [แอป macOS](/th/platforms/macos)
