{"id":47591693,"url":"https://github.com/gi8lino/easybar","last_synced_at":"2026-06-05T12:00:41.264Z","repository":{"id":345311780,"uuid":"1181647298","full_name":"gi8lino/easybar","owner":"gi8lino","description":"A modern, configurable macOS status bar built with Swift, supporting native widgets, custom Lua widgets, and AeroSpace integration.","archived":false,"fork":false,"pushed_at":"2026-05-29T07:27:51.000Z","size":3519,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-29T08:24:18.888Z","etag":null,"topics":["lua","macos","status-bar","swift"],"latest_commit_sha":null,"homepage":"https://gi8lino.github.io/easybar/","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gi8lino.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-14T12:36:39.000Z","updated_at":"2026-05-29T07:26:40.000Z","dependencies_parsed_at":null,"dependency_job_id":"fe0674d3-88da-4ba8-8339-a34e9aa2a4de","html_url":"https://github.com/gi8lino/easybar","commit_stats":null,"previous_names":["gi8lino/easybar"],"tags_count":228,"template":false,"template_full_name":null,"purl":"pkg:github/gi8lino/easybar","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gi8lino%2Feasybar","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gi8lino%2Feasybar/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gi8lino%2Feasybar/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gi8lino%2Feasybar/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gi8lino","download_url":"https://codeload.github.com/gi8lino/easybar/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gi8lino%2Feasybar/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33939227,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-05T02:00:06.157Z","response_time":120,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["lua","macos","status-bar","swift"],"created_at":"2026-04-01T17:34:29.424Z","updated_at":"2026-06-05T12:00:41.248Z","avatar_url":"https://github.com/gi8lino.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# EasyBar\n\n![EasyBar screenshot](./docs/content/assets/bar.png)\n\nEasyBar is a lightweight, scriptable macOS status bar built with SwiftUI and Lua.\n\nIt combines native built-in widgets with custom Lua widgets and is designed for an AeroSpace-based macOS workflow.\n\n## Features\n\n- Native macOS bar window built with SwiftUI\n- Built-in widgets plus scriptable Lua widgets\n- File-based themes with bundled and custom TOML palettes\n- AeroSpace integration for spaces, focused app state, and layout mode state\n- Event-driven updates and interactive popups\n- Calendar and network helper agents\n- Homebrew install and service workflow\n- Config-driven logging and troubleshooting support\n- Lightweight runtime metrics\n\n## Installation\n\n```bash\nbrew tap gi8lino/tap\nbrew install gi8lino/tap/easybar\n```\n\nStart EasyBar and its helper agents:\n\n```bash\nbrew services start gi8lino/tap/easybar-calendar-agent\nbrew services start gi8lino/tap/easybar-network-agent\nbrew services start gi8lino/tap/easybar\n```\n\n## Documentation\n\nFull documentation is available here: [https://gi8lino.github.io/easybar/](https://gi8lino.github.io/easybar/)\n\nStart with:\n\n- Installation\n- Configuration\n- Themes\n- AeroSpace Integration\n- Lua Widgets\n- Troubleshooting\n- Architecture\n\n## Configuration\n\nEasyBar reads its runtime config from:\n\n```text\n~/.config/easybar/config.toml\n```\n\nYou can override it with:\n\n```bash\nEASYBAR_CONFIG_PATH=/path/to/config.toml\n```\n\nThe repository includes:\n\n- [`config.defaults.toml`](./config.defaults.toml)\n- [`config.minimal.toml`](./config.minimal.toml)\n\nThemes are selected in `config.toml`:\n\n```toml\n[theme]\nname = \"mocha\"\nthemes_dir = \"~/.config/easybar/themes\"\n```\n\nEasyBar first looks for a custom theme in `themes_dir`, then falls back to bundled themes.\n\n## Developing\n\nQuickstart for contributors:\n\n```bash\nmake test\nmake stop\nmake run-debug\n```\n\nUseful build and runtime commands:\n\n- `make test` runs the full Swift test suite.\n- `make build` builds the local app, agents, and CLI artifacts.\n- `make run-debug` starts EasyBar with verbose logging for local debugging.\n- `make stop` stops the running EasyBar app and helper agents cleanly.\n- `.build/arm64-apple-macosx/debug/EasyBarCtl --validate-config --config /path/to/config.toml` asks the running EasyBar process to dry-run config validation without reloading the bar.\n\nHelpful entry points in the codebase:\n\n- `Sources/EasyBarApp/App` contains the main app shell and startup wiring.\n- `Sources/EasyBarApp/Runtime` contains config reload, file watching, and socket orchestration.\n- `Sources/EasyBarApp/Widgets` contains native widgets, Lua runtime integration, and rendered widget state.\n- `Sources/EasyBarCalendarAgent` and `Sources/EasyBarNetworkAgent` contain the helper agent apps.\n- `Sources/EasyBarShared` contains shared runtime, logging, socket, and protocol code used across targets.\n\nIf you want the architectural map before editing code, start with the docs sections for Architecture, Agents, and Lua Runtime in [the project docs](https://gi8lino.github.io/easybar/).\n\n## Screenshots\n\n### Calendar\n\n\u003cimg src=\"./docs/content/assets/month.png\" alt=\"Calendar screenshot\" width=\"320\"\u003e\n\n### Upcoming\n\n\u003cimg src=\"./docs/content/assets/upcoming.png\" alt=\"Upcoming screenshot\" width=\"320\"\u003e\n\n### CPU\n\n\u003cimg src=\"./docs/content/assets/cpu.png\" alt=\"CPU screenshot\" width=\"500\"\u003e\n\n### Front app\n\n\u003cimg src=\"./docs/content/assets/front_app.png\" alt=\"Front app screenshot\" width=\"500\"\u003e\n\n### Wifi\n\n\u003cimg src=\"./docs/content/assets/wifi.png\" alt=\"Wifi details view screenshot\" width=\"500\"\u003e\n\n### Context menu\n\n\u003cimg src=\"./docs/content/assets/context.png\" alt=\"Context menu screenshot\" width=\"500\"\u003e\n\n## License\n\nThis project is licensed under the Apache 2.0 License. See [LICENSE](./LICENSE) for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgi8lino%2Feasybar","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgi8lino%2Feasybar","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgi8lino%2Feasybar/lists"}