JakeStanger / ironbar

Customisable Wayland gtk bar written in Rust.
https://crates.io/crates/ironbar
MIT License
561 stars 47 forks source link
bar desktop gtk gtk-layer-shell hyprland rust sway wayland wlroots

--- Ironbar ---

Current version Build status Open issues License Crates.io downloads

A customisable and feature-rich GTK bar for wlroots compositors, written in Rust. Ironbar is designed to support anything from a lightweight bar to a full desktop panel with ease. --- ## Getting Started [Wiki](https://github.com/JakeStanger/ironbar/wiki) | [Configuration Guide](https://github.com/JakeStanger/ironbar/wiki/configuration-guide) | [Style Guide](https://github.com/JakeStanger/ironbar/wiki/styling-guide) --- ![Screenshot of fully configured bar with MPD widget open](https://f.jstanger.dev/github/ironbar/bar.png?raw) ✨ Looking for a starting point, or want to show off? Head to [Show and tell](https://github.com/JakeStanger/ironbar/discussions/categories/show-and-tell) ✨

Features

Installation

Packaging status

Ironbar can be installed from source or using your preferred package manager.

It is also recommended to install a Nerd Font for displaying symbols.

Cargo

crate

Ensure you have the build dependencies installed.

cargo install ironbar

Arch Linux

aur package

yay -S ironbar-git

Nix

nix package

nix-shell -p ironbar

Flake

A flake is included with the repo which can be used with Home Manager.

Example usage ```nix { # Add the ironbar flake input inputs.nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; inputs.ironbar = { url = "github:JakeStanger/ironbar"; inputs.nixpkgs.follows = "nixpkgs"; }; inputs.hm = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; outputs = inputs: { homeManagerConfigurations."USER@HOSTNAME" = inputs.hm.lib.homeManagerConfiguration { pkgs = nixpkgs.legacyPackages.x86_64-linux; modules = [ # And add the home-manager module inputs.ironbar.homeManagerModules.default { # And configure programs.ironbar = { enable = true; config = {}; style = ""; package = inputs.ironbar; features = ["feature" "another_feature"]; }; } ]; }; }; } ```

CI builds are automatically cached by Garnix. You can use their binary cache by following the steps here.

Fedora

fedora package

dnf copr enable victorvintorez/tilingtools
dnf install ironbar

Void Linux

void package

xbps-install ironbar

Source

repo

Ensure you have the build dependencies installed.

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

By default, all features are enabled. See here for controlling which features are included.

Running

Once installed, you will need to create a config and optionally a stylesheet in .config/ironbar. See the Configuration Guide and Style Guide for full details.

Ironbar can be launched using the ironbar binary.

The IRONBAR_LOG and IRONBAR_FILE_LOG environment variables can be set to change console and file log verbosity respectively. You can use any of error, warn, info, debug or trace.

These default to IRONBAR_LOG=info and IRONBAR_FILE_LOG=warn. Note that you cannot increase the file log verbosity above console verbosity.

Log files can be found at ~/.local/share/ironbar/.log.

Status

Ironbar is an alpha project. It is unfinished and subject to constant breaking changes, and will continue that way until the foundation is rock solid.

If you would like to take the risk and help shape development, any bug reports, feature requests and discussion is welcome.

I use Ironbar on my daily driver, so development is active. Features aim to be stable and well documented before being merged.

Contribution Guidelines

All are welcome, but I ask a few basic things to help make things easier. Please check here for details.

Acknowledgements