Targets¶
EasyBar is split into a few focused targets.
Target list¶
EasyBarSharedShared models, config loading, socket paths, IPC types, logging utilities, environment keys, and common runtime helpers.EasyBarAppThe main macOS status bar application.EasyBarCtlTheeasybarcommand-line client.EasyBarCalendarAgentHelper app entrypoint for the calendar agent.EasyBarCalendarCoreShared reusable calendar-agent logic used byEasyBarCalendarAgentand intended for future standalone calendar clients.CEasyBarEventKitCompatException-safe Objective-C bridge used byEasyBarCalendarCoreto access EventKit's non-public event travel-time value.EasyBarCalendarPresentationShared reusable calendar request and presentation helpers used byEasyBarand intended for future standalone calendar clients.EasyBarCalendarUIShared reusable calendar SwiftUI components and composer state used byEasyBarand intended for future standalone calendar clients.EasyBarNetworkAgentHelper app that owns Wi-Fi and network observation.EasyBarNetworkAgentCoreShared reusable network-agent logic used byEasyBarNetworkAgentand also by the standalonewifi-snitchproject.
Directory and target intent¶
A useful way to think about the targets is:
Sources/EasyBarSharedprocess-boundary types and shared utilitiesSources/EasyBarAppapp lifecycle, UI, event coordination, native widgets, Lua supervisionSources/EasyBarCtlcommand-line control clientSources/EasyBarCalendarAgentcalendar-agent executable entrypoint and app lifecycleSources/EasyBarCalendarCorereusable calendar-agent internalsSources/CEasyBarEventKitCompatObjective-C exception boundary for EventKit travel-time accessSources/EasyBarCalendarPresentationreusable calendar request or presentation logicSources/EasyBarCalendarUIreusable calendar SwiftUI or calendar-only view stateSources/EasyBarNetworkAgentnetwork-agent executable entrypoint and app lifecycleSources/EasyBarNetworkAgentCorereusable network-agent internals
That structure reflects runtime responsibilities, not only package-manager convenience.