A sh-driven swaybar.

90c15db "lxd-updates" -> "container-updates"

~chimo pushed to ~chimo/shuibar git

3 hours ago

66825db airthings: Handle click event.

~chimo pushed to ~chimo/shuibar git

28 days ago


A sh-driven swaybar.

I'm using this project as an excuse to learn things. As such, it's probably a little bit of a mess and subject to change at any time.

One of the goals is to mostly use the tools available on a fresh Alpine Linux install (Busybox) and keep the package requirements low.

A decent number of "blocks" rely on external services (location, weather, etc.). Each block should have its own README with more information. Blocks aim to be somewhat configurable (ex: custom endpoints for external services).


See the "config.example" file to configure which blocks to run.

In your sway config file (usually ~/.config/sway/config) point the "status_command" property to main.sh, with the --json parameter like so:

bar {
    status_command '~/.config/sway/swaybar/bin/main.sh --json'


  • Maybe a screenshot for the readme?
  • Sometimes "$block" is the filename, sometimes just the name. Always use name and add ".sh" just when we're about to run the script (if applicable). Note: This will change the CLI behaviour from run_block.sh -b network.sh to run_block.sh -b network, for example.
  • inotifyd for ad-hoc refreshes, when possible?