Customisable gtk-layer-shell wlroots/sway bar written in rust.
Go to file
2022-08-15 21:12:04 +01:00
.github/workflows ci: add libgtk-layer-shell-dev 2022-08-15 00:15:36 +01:00
.idea chore(intellij): config update 2022-08-15 21:12:04 +01:00
examples docs: include example files 2022-08-15 17:06:55 +01:00
src refactor: fix a couple of clippy warnings 2022-08-15 21:11:17 +01:00
.gitignore chore: initial commit 2022-08-14 14:30:13 +01:00
Cargo.lock chore(release): v0.2.0 2022-08-14 20:42:42 +01:00
Cargo.toml chore(release): v0.2.0 2022-08-14 20:42:25 +01: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 docs: write better configuration/styling guides 2022-08-15 17:05:13 +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

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 very early stages:

  • Error handling is barely implemented - expect crashes
  • There will be bugs!
  • Lots of modules need more configuration options
  • There's room for lots of modules
  • The code is messy and quite prototypal in places
  • Config options aren't set in stone - expect breaking changes
  • Documentation is probably missing in lots of places

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.

Contribution Guidelines

I welcome contributions of any kind with open arms. That said, please do stick to some basics:

  • For code contributions:

    • Fix any cargo clippy warnings, using at least the default configuration.
    • Make sure your code is formatted using cargo fmt.
    • Keep any documentation up to date.
    • I won't enforce it, but preferably stick to conventional commit messages.
  • For PRs:

    • Please open an issue or discussion beforehand. I'll accept most contributions, but it's best to make sure you're not working on something that won't get accepted :)
  • For issues:

    • Please provide as much information as you can - share your config, any logs, steps to reproduce...

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