2022-08-14 14:30: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 ](https://github.com/JakeStanger/ironbar/wiki ).
2022-08-14 14:36:43 +01:00

2022-08-14 14:30:13 +01:00
## Installation
2022-08-15 00:03:04 +01:00
Run using `ironbar` .
2022-08-15 00:01:38 +01:00
### Cargo
2022-08-14 14:30:13 +01:00
```sh
cargo install ironbar
```
2022-08-15 00:01:38 +01:00
[crate ](https://crates.io/crates/ironbar )
### Arch Linux
```sh
yay -S ironbar-git
```
2022-08-15 00:03:04 +01:00
[aur package ](https://aur.archlinux.org/packages/ironbar-git )
2022-08-14 14:30:13 +01:00
## Configuration
2022-08-15 17:05:13 +01:00
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.
2022-08-14 14:30:13 +01:00
2022-08-15 17:05:13 +01:00
A full configuration guide can be found [here ](https://github.com/JakeStanger/ironbar/wiki/configuration-guide ).
2022-08-14 15:56:21 +01:00
2022-08-14 14:30:13 +01:00
## Styling
To get started, create a stylesheet at `.config/ironbar/style.css` . Changes will be hot-reloaded every time you save the file.
2022-08-15 17:05:13 +01:00
A full styling guide can be found [here ](https://github.com/JakeStanger/ironbar/wiki/styling-guide ).
2022-08-14 14:30:13 +01:00
## 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 ](https://www.conventionalcommits.org/en/v1.0.0/ ) 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 ](https://github.com/Alexays/Waybar ) - A lot of the initial inspiration, and a pretty great bar.
2022-08-14 14:36:43 +01:00
- [Rustbar ](https://github.com/zeroeightysix/rustbar ) - Served as a good demo for writing a basic GTK bar in Rust