Ironbar is a customisable and feature-rich bar targeting the Sway compositor, written in Rust. It uses GTK3 and gtk-layer-shell.
The bar can be styled to your liking using CSS and hot-loads style changes. For information and examples on styling please see the wiki.
Install with cargo:
sh
cargo install ironbar
Then just run with ironbar
.
By default, running will get you a blank bar. To start, you will need a configuration file in .config/ironbar
.
Ironbar supports a range of file formats so pick your favourite:
For a full list of modules and their configuration options, please see the wiki.
There are two different approaches to configuring the bar:
If you have a single monitor, or want the same bar to appear across each of your monitors, choose this option.
The top-level object takes any combination of left
, center
, and right
. These each take a list of modules and determine where they are positioned.
json
{
"left": [],
"center": [],
"right": []
}
If you have multiple monitors and want them to differ in configuration, choose this option.
The top-level object takes a single key called monitors
. This takes an array where each entry is an object with a configuration for each monitor.
The monitor's config object takes any combination of left
, center
, and right
. These each take a list of modules and determine where they are positioned.
json
{
"monitors": [
{
"left": [],
"center": [],
"right": []
},
{
"left": [],
"center": [],
"right": []
}
]
}
To get started, create a stylesheet at .config/ironbar/style.css
. Changes will be hot-reloaded every time you save the file.
An example stylesheet and information about each module's styling information can be found on the wiki.
This project is in very early stages:
That said, it will be actively developed as I am using it on my daily driver. Bugs will be fixed, features will be added, code will be refactored.
I welcome contributions of any kind with open arms. That said, please do stick to some basics:
For code contributions:
cargo clippy
warnings, using at least the default configuration.cargo fmt
.For PRs:
For issues: