Customisable gtk-layer-shell wlroots/sway bar written in rust.
Go to file
2022-08-25 21:54:32 +01:00
.github/workflows ci(release): fix missing build deps [skip ci] 2022-08-22 23:13:45 +01:00
.idea feat: logging support and proper error handling 2022-08-21 23:36:51 +01:00
examples docs: include example files 2022-08-15 17:06:55 +01:00
src feat: introduce logging in some areas 2022-08-25 21:53:57 +01:00
.gitignore chore: initial commit 2022-08-14 14:30:13 +01:00
Cargo.lock chore(release): v0.5.0 2022-08-25 21:54:32 +01:00
Cargo.toml chore(release): v0.5.0 2022-08-25 21:54:32 +01:00
CHANGELOG.md docs: update CHANGELOG.md for v0.4.0 [skip ci] 2022-08-22 22:09:27 +00:00
CONTRIBUTING.md docs: add contributing guidelines file 2022-08-14 14:34:27 +01:00
LICENSE chore: add mit license 2022-08-14 14:32:54 +01:00
README.md feat: logging support and proper error handling 2022-08-21 23:36:51 +01:00

Ironbar

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.

Screenshot of fully configured bar with MPD widget open

Installation

Run using ironbar.

Cargo

cargo install ironbar

crate

Arch Linux

yay -S ironbar-git

Source

git clone https://github.com/jakestanger/ironbar.git
cd ironbar
cargo build --release
# change path to wherever you want to install
install target/release/ironbar ~/.local/bin/ironbar

aur package

Configuration

Ironbar gives a lot of flexibility when configuring, including multiple file formats and options for scaling complexity: you can use a single config across all monitors, or configure different/multiple bars per monitor.

A full configuration guide can be found here.

Styling

To get started, create a stylesheet at .config/ironbar/style.css. Changes will be hot-reloaded every time you save the file.

A full styling guide can be found here.

Project Status

This project is in alpha, but should be usable. Everything that is implemented works and should be documented. Proper error handling is in place so things should either fail gracefully with detail, or not fail at all.

There is currently room for lots more modules, and lots more configuration options for the existing modules. The current configuration schema is not set in stone and breaking changes could come along at any point; until the project matures I am more interested in ease of use than backwards compatibility.

A few bugs do exist, and I am sure there are plenty more to be found.

The project 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.

Contribution Guidelines

Please check here.

Acknowledgements

  • Waybar - A lot of the initial inspiration, and a pretty great bar.
  • Rustbar - Served as a good demo for writing a basic GTK bar in Rust