Skip to content
This repository was archived by the owner on Nov 17, 2025. It is now read-only.

Commit 00e2268

Browse files
steipeteclaude
andcommitted
Replace emoji counters in menu bar with elegant Unicode symbols
- Updated MenuBarIconManager to use clean Unicode symbols instead of emoji circles - ▶ for running instances (replacing 🟢) - ⏸ for stopped instances (replacing 🔴) - ○ for unknown instances (replacing 🟡) - Consistent design with the popover's elegant status indicators - Proper appearance adaptation for light/dark mode - Smaller, cleaner appearance that matches macOS design standards Now both the menu bar and popover use the same elegant design language. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 4de4995 commit 00e2268

1 file changed

Lines changed: 18 additions & 11 deletions

File tree

Features/StatusBar/Infrastructure/MenuBarIconManager.swift

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -210,32 +210,39 @@ class MenuBarIconManager: ObservableObject {
210210
private func createAIStatusAttributedString(working: Int, notWorking: Int, unknown: Int) -> AttributedString {
211211
var result = AttributedString()
212212
var hasContent = false
213+
214+
let currentAppearance = getCurrentAppearance()
215+
let isDark = currentAppearance == .darkAqua
213216

214-
func appendStatus(emoji: String, count: Int, color _: Color) {
217+
func appendStatus(icon: String, count: Int, color: NSColor) {
215218
guard count > 0 else { return }
216219
if hasContent {
217220
result.append(AttributedString(" "))
218221
}
219-
let part = AttributedString("\(emoji)\(count)")
222+
223+
// Create a simple, elegant display without background colors
224+
var attributes = AttributeContainer()
225+
attributes.font = NSFont.systemFont(ofSize: 11, weight: .medium)
226+
attributes.foregroundColor = isDark ? NSColor.white : NSColor.black
227+
228+
let statusString = "\(icon)\(count)"
229+
let part = AttributedString(statusString, attributes: attributes)
230+
220231
result.append(part)
221232
hasContent = true
222233
}
223234

224-
// Define colors based on current appearance (though direct Text view modifiers are better)
225-
let workingColor: Color = .green
226-
let notWorkingColor: Color = .red
227-
let unknownColor: Color = .orange
228-
235+
// Use simple Unicode symbols that look clean in the menu bar
229236
if working > 0 {
230-
appendStatus(emoji: "🟢", count: working, color: workingColor)
237+
appendStatus(icon: "", count: working, color: .systemGreen)
231238
}
232239
if notWorking > 0 {
233-
appendStatus(emoji: "🔴", count: notWorking, color: notWorkingColor)
240+
appendStatus(icon: "", count: notWorking, color: .systemRed)
234241
}
235242
if unknown > 0, !hasContent {
236-
appendStatus(emoji: "🟡", count: unknown, color: unknownColor)
243+
appendStatus(icon: "", count: unknown, color: .systemOrange)
237244
} else if unknown > 0, Defaults[.debugModeEnabled] {
238-
appendStatus(emoji: "🟡", count: unknown, color: unknownColor)
245+
appendStatus(icon: "", count: unknown, color: .systemOrange)
239246
}
240247

241248
if !hasContent {

0 commit comments

Comments
 (0)