#utils #bar #x11

bin+lib atomblocks

async, absolutely lightweight and dead simple bar for dwm and similar window managers

3 unstable releases

new 0.2.0 Feb 12, 2024
0.1.1 Feb 10, 2024
0.1.0 Feb 10, 2024

#177 in GUI

Download history 89/week @ 2024-02-08

89 downloads per month

Custom license

479 lines


async, absolutely lightweight and dead simple bar for dwm and similar window managers

Report Bug · Request Feature

About The Project

another bar implementation for the DWM window manager and similar ones, with asynchronous and independent blocks update.

Getting Started

To get a local copy up and running follow these simple example steps.


Install Rust and Cargo. The easiest way to get Cargo is to install the current stable release of Rust by using rustup. Installing Rust using rustup will also install cargo.

  • install rustup:

    curl https://sh.rustup.rs -sSf | sh
  • install stable rust and cargo:

    rustup install stable

Build from sources

  1. Clone the repo
    git clone https://github.com/milchinskiy/atomblocks.git && cd ./atomblocks
  2. Build release
    cargo build --release

Install from crates.io

cargo install atomblocks

Install from AUR (Arch Linux)

using yay, paru or any other AUR helper you prefer, yay for example:

yay -S atomblocks

Run via Nix Flakes

nix run github:milchinskiy/atomblocks -- run --config <your.config.toml>

(back to top)


An incredibly simple and straightforward configuration file can be found in the code repository sample/config.toml There are a few places where configuration could live

  • $XDG_CONFIG_HOME/atomblocks/config.toml
  • $HOME/.config/atomblocks/config.toml
  • /etc/atomblocks/config.toml
  • you can directly set the file via args


atomblocks run

Manually hit the block to update

atomblocks hit <ID>
# where <ID> is a sequential block index in config file

Run with custom config

atomblocks run --config ./my-custom-config.toml

(back to top)


Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request


Distributed under the MIT License. See LICENSE file for more information.


~335K SLoC