Recovery¶
Use this page when EasyBar is stuck, stale, or behaving unexpectedly.
For responsive helper agents, prefer easybar agent restart calendar, easybar agent restart network, or easybar agent restart all. Homebrew Services relaunches each helper after it acknowledges the request and exits. If a socket is unresponsive, restart its service with brew services restart easybar-calendar-agent or brew services restart easybar-network-agent.
For detailed helper-agent process checks, socket probes, permission debugging, and raw agent output inspection, see Debugging Agents.
Calendar widget is empty¶
Make sure the calendar agent is enabled and running, then grant Calendar access in macOS settings.
EasyBar exposes menu actions to open the relevant settings pages, and the calendar agent permission state is shown in the bar context menu.
If you changed permissions and nothing updates, restart the calendar agent and EasyBar:
easybar agent restart calendar
For deeper checks, including socket pings and logs, use Debugging Agents.
Wi-Fi or network widget is empty¶
Make sure the network agent is enabled and running.
The network agent depends on Location Services permission. If permission is denied or unresolved, Wi-Fi-specific fields may be unavailable by design.
Restart the network agent and EasyBar after changing permission settings:
easybar agent restart network
For deeper checks, including raw Wi-Fi and network field inspection, use Debugging Agents.
AeroSpace widgets do not update¶
First check that AeroSpace is supported by your EasyBar version. EasyBar requires AeroSpace 0.21.0 or newer.
aerospace --version
Both the CLI client and the running AeroSpace.app server should be at least 0.21.0. If the versions differ after updating, restart AeroSpace.app.
EasyBar updates AeroSpace widgets through a long-lived connection to AeroSpace's native Unix socket. It sends the equivalent of an aerospace subscribe --all request without spawning the CLI subscription process.
Raise EasyBar logging to debug and look for subscription lifecycle messages:
[logging]
enabled = true
level = "debug"
Useful messages include aerospace subscription started, aerospace subscription event received, aerospace subscription disconnected, and aerospace subscription reconnect scheduled.
If AeroSpace is restarted or updated while EasyBar is running, EasyBar reconnects with bounded backoff while AeroSpace's socket remains available.
You can trigger one refresh manually with:
easybar refresh
Local scripts can also emit EasyBar driver events when they need widgets to react to a known external state change:
easybar event emit workspace_change
Spaces widget misses an app launch or quit¶
The built-in spaces widget refreshes AeroSpace-derived state from native socket subscription events. App-focus events use a focused-window fast path, workspace-focus events update the highlight directly from event metadata, and complete snapshots reconcile the workspace and window lists. Events without a dedicated fast path use a 120 ms trailing debounce so bursts produce one snapshot.
If icons still look stale after a launch, trigger a manual refresh once:
easybar refresh
Config changes do not apply¶
If watch_config = false, EasyBar will not automatically reload config changes.
Either enable config watching or reload manually:
easybar config reload
If a reload is rejected, EasyBar keeps the last valid config and logs the parse or validation error. Check the logs instead of assuming the new file was accepted.
Lua widgets stop updating¶
First try a normal refresh:
easybar refresh
That refreshes the bar and widgets using the currently loaded config and pulls fresh data from agents, but it does not reload config from disk and does not restart the Lua runtime.
If the Lua side itself seems stuck, restart it explicitly:
easybar runtime restart
The bar context menu item does the same thing:
Restart Lua Runtime
If that is still not enough, restart the whole app:
pkill -x EasyBar
open -a EasyBar
If a widget still fails, check your configured widgets_dir, Lua path, [app.env], and any widget-specific logs or output.
Full reset¶
A good recovery sequence is:
pkill -x EasyBar || true
pkill -x EasyBarCalendarAgent || true
pkill -x EasyBarNetworkAgent || true
open -a EasyBar
This clears the usual problems caused by duplicate instances or stale agent state.