{"id":13897596,"url":"https://github.com/doums/baru","last_synced_at":"2026-04-10T14:03:36.205Z","repository":{"id":37618675,"uuid":"257131156","full_name":"doums/baru","owner":"doums","description":"A simple system monitor for WM statusbar","archived":false,"fork":false,"pushed_at":"2024-09-19T19:30:46.000Z","size":2129,"stargazers_count":134,"open_issues_count":1,"forks_count":5,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-11T23:55:24.102Z","etag":null,"topics":["archlinux","bar","baru","dwm","lemonbar","linux","monitor","nerd-fonts","rust","status-bar","statusbar","system-monitor","window-manager","wm","xmobar","xmonad"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/doums.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2020-04-20T00:25:28.000Z","updated_at":"2025-01-26T06:49:07.000Z","dependencies_parsed_at":"2024-08-18T20:28:18.636Z","dependency_job_id":"d3917aec-af86-4af3-919a-fe0e2a61b6c6","html_url":"https://github.com/doums/baru","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doums%2Fbaru","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doums%2Fbaru/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doums%2Fbaru/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/doums%2Fbaru/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/doums","download_url":"https://codeload.github.com/doums/baru/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245007238,"owners_count":20546143,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["archlinux","bar","baru","dwm","lemonbar","linux","monitor","nerd-fonts","rust","status-bar","statusbar","system-monitor","window-manager","wm","xmobar","xmonad"],"created_at":"2024-08-06T18:03:43.824Z","updated_at":"2026-04-10T14:03:36.199Z","avatar_url":"https://github.com/doums.png","language":"Rust","funding_links":[],"categories":["Rust"],"sub_categories":[],"readme":"[![baru](https://img.shields.io/github/actions/workflow/status/doums/baru/test.yml?color=0D0D0D\u0026logoColor=BFBFBF\u0026labelColor=404040\u0026logo=github\u0026style=for-the-badge)](https://github.com/doums/baru/actions?query=workflow%3ATest)\n[![baru](https://img.shields.io/aur/version/baru?color=0D0D0D\u0026logoColor=BFBFBF\u0026labelColor=404040\u0026logo=arch-linux\u0026style=for-the-badge)](https://aur.archlinux.org/packages/baru/)\n\n## baru\n\nA simple system monitor for WM statusbar\n\n![baru](https://raw.githubusercontent.com/doums/baru/master/public/baru.png)\n\nBaru is a lightweight system monitor for WM status-bar.\\\nIntended to be used as a provider with any status-bar that can read from `stdout`.\\\nLike [xmobar](https://codeberg.org/xmobar/xmobar),\n[lemonbar](https://github.com/LemonBoy/bar),\n[dwm](https://dwm.suckless.org/status_monitor/) etc…\n\n---\n\n[features](#features) ∎ [prerequisite](#prerequisite) ∎ [install](#install) ∎ [configuration](#configuration) ∎ [usage](#usage) ∎ [credits](#credits) ∎ [license](#license)\n\n### Features\n\n* date and time\n* battery (level, status, design level based)\n* wireless (state, essid, signal strength)\n* wired (state)\n* audio sink and source (level, muted)\n* brightness\n* cpu usage, frequency and temperature\n* memory (percent or used/total in gigabyte/gibibyte)\n* weather current condition and\n  temperature ([OpenWeatherMap](https://openweathermap.org/))\n* dynamic and customizable labels, play nicely with icons and [nerd-fonts](https://www.nerdfonts.com/)\n* customizable format output\n* configuration in YAML\n\n### Prerequisite\n\nThe following system libraries are required:\n\n- libnl (for wired and wireless modules)\n- libpulse (for sound and mic modules)\n\n### Install\n\n- Arch Linux (AUR) [package](https://aur.archlinux.org/packages/baru)\n- latest [release](https://github.com/doums/baru/releases)\n\n### Configuration\n\nThe binary looks for the config file `baru.yaml` located\nin `$XDG_CONFIG_HOME/baru/` (default to `$HOME/.config/baru/`).\\\nIf the config file is not found, baru prints an error and exits.\n\nYou can find the full config details [here](https://github.com/doums/baru/blob/master/baru.yaml).\n\nTIPS: To test and debug your config run baru from the terminal like this:\n\n```shell\nRUST_LOG=debug baru -l stdout\n```\n\nUse the root `format` option to customize baru output.\\\nYou can pick which modules you want to display. Using the special markup `%x`\nwhere `x` is the letter of the module.\nThese markups are replaced by the output of the corresponding modules.\n\nModules available:\n- `a` battery\n- `b` brightness\n- `c` cpu usage\n- `d` datetime\n- `e` wired\n- `f` cpu frequency\n- `m` memory\n- `i` mic\n- `r` weather\n- `s` sound\n- `t` temperature\n- `w` wireless\n\nModule output:\\\nEach module takes a `format` option.\\\n`%l` and `%v` are respectively the label and the current value of the module.\n\n#### Config example\n\n```yaml\nformat: '%m  %f  %c  %t  %b  %i  %s   %w%e  %a    %d'\ntick: 50\n\n# modules configuration\nbattery:\n  full_design: true\n  low_level: 30\n  full_label: '*'\n  charging_label: '^'\n  discharging_label: 'b'\n  low_label: '!'\n  unknown_label: '?'\n  format: '%l %v' # display label and value\nbrightness:\n  label: 'l'\n  format: '%l %v'\ncpu_usage:\n  label: 'c'\n  high_label: '!'\n  format: '%v %l'\ncpu_freq:\n  tick: 100\n  high_level: 60\n  label: 'f'\n  high_label: '!'\n  format: '%v %l'\nmemory:\n  label: 'm'\n  high_label: '!'\n  format: '%v %l'\nmic:\n  label: 'i'\n  mute_label: '.'\n  format: '%v %l'\nsound:\n  label: 's'\n  mute_label: '.'\n  format: '%v %l'\ntemperature:\n  core_inputs: 2..5\n  label: 't'\n  high_label: '!'\n  format: '%v %l'\nwired:\n  discrete: true\n  label: 'e'\n  disconnected_label: '\\'\n  format: '%l' # display label only\nwireless:\n  interface: wlan0\n  display: Essid\n  max_essid_len: 5\n  label: 'w'\n  disconnected_label: '\\'\n  format: '%v %l'\nweather:\n  tick: 300 # seconds\n  # your openweathermap api key\n  api_key: 1234567890\n  location: 'Metz'\n  unit: metric\n  icons:\n    clear_sky: [ '󰖙', '󰖔' ] # day, night\n    partly_cloudy: [ '󰖕', '󰼱' ]\n    cloudy: '󰖐' # one icon for both day and night\n    very_cloudy: '󰖐'\n    shower_rain: '󰖖'\n    rain: '󰖖'\n    thunderstorm: '󰖓'\n    snow: '󰖘'\n    mist: '󰖑'\n  format: '%v'\n```\n\n### Usage\n\n```shell\nbaru -h\n```\n\nWhen spawning baru from your WM/status-bar you can pass the `-l file` flag\\\nif you want baru to log into a file (useful for debugging).\\\nLogs are written to the directory `$XDG_CACHE_HOME/baru/` (default\nto `$HOME/.cache/baru/`).\n\n```shell\nbaru -l file\n```\n\n### Implementation details\n\nBaru gathers the information from `/sys` and `/proc` filesystems (filled by the\nkernel).\\\nExcept audio and network modules which use C libraries.\\\nAll modules are threaded and loaded on-demand.\\\nThanks to this modular design (as well Rust and C), baru is lightweight and\nefficient.\\\nIt can run at high refresh rate with a minimal cpu footprint.\n\nThe audio module communicates with\nthe [PipeWire](https://pipewire.org/)/[PulseAudio](https://www.freedesktop.org/wiki/Software/PulseAudio/)\\\nserver\nthrough [client API](https://freedesktop.org/software/pulseaudio/doxygen/) to\nretrieve its data. Wireless and wired\\\nmodules use the netlink interface with the help\nof [libnl](https://www.infradead.org/~tgr/libnl/) to talk directly\\\nto kernel and retrieve their data.\\\nIn addition, wireless module uses\nthe [802.11](https://github.com/torvalds/linux/blob/master/include/uapi/linux/nl80211.h)\nAPI.\n\n### Dev\n\n#### Prerequisites\n\n- [Rust](https://www.rust-lang.org/tools/install)\n- CMake\n- libnl and libpulse present on the system\n\n```shell\nRUST_LOG=trace cargo run -- -l stdout\n```\n\n### Credits\n\nClément Dommerc for providing me with the C code for the lib `netlink`, wireless\npart.\n\n### License\n\nMozilla Public License 2.0\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoums%2Fbaru","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdoums%2Fbaru","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdoums%2Fbaru/lists"}