docs(readme): make prettier

This commit is contained in:
Jake Stanger 2023-05-08 14:04:30 +01:00
parent 3ccb54b49c
commit bd144e87a8
No known key found for this signature in database
GPG Key ID: C51FC8F9CB0BEA61

127
README.md
View File

@ -1,49 +1,86 @@
# Ironbar <h1 align="center" >--- Ironbar ---</h1>
Ironbar is a customisable and feature-rich bar for wlroots compositors, written in Rust. <div align="center">
It uses GTK3 and gtk-layer-shell. <a href="https://github.com/JakeStanger/ironbar/releases">
<img src="https://img.shields.io/crates/v/ironbar?label=version&style=for-the-badge" alt="Current version" />
</a>
<a href="https://github.com/JakeStanger/ironbar/actions/workflows/build.yml">
<img src="https://img.shields.io/github/actions/workflow/status/jakestanger/ironbar/build.yml?style=for-the-badge" alt="Build status" />
</a>
<a href="https://github.com/JakeStanger/ironbar/issues">
<img src="https://img.shields.io/github/issues/jakestanger/ironbar?style=for-the-badge" alt="Open issues" />
</a>
<a href="https://github.com/JakeStanger/ironbar/blob/master/LICENSE">
<img src="https://img.shields.io/github/license/jakestanger/ironbar?style=for-the-badge" alt="License" />
</a>
<a href="https://crates.io/crates/ironbar">
<img src="https://img.shields.io/crates/d/ironbar?label=crates.io%20downloads&style=for-the-badge" alt="Crates.io downloads" />
</a>
</div>
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).
<div align="center">
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) ![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) ✨
</div>
---
## Features ## Features
- First-class support for Sway and Hyprland, but should (mostly) work on any wlroots compositor. - First-class support for Sway and Hyprland
- Fully themeable with CSS and hot-loaded styles. - Fully themeable with hot-loaded CSS
- Support for multiple configuration languages. - Popups to show rich content
- Popups used by widgets to show rich content and controls on click. - Ability to create custom widgets, run scripts and embed dynamic content
- Out of the box widgets which can be used to create anything from a lightweight to a more traditional desktop experience. - Easy to configure anything from a single bar across all monitors, to multiple different unique bars per monitor
- Ability to create custom widgets (including popups), run scripts and inject dynamic content. - Support for multiple config languages
## Installation ## Installation
### Cargo ### Cargo
[crate](https://crates.io/crates/ironbar)
Ensure you have the [build dependencies](https://github.com/JakeStanger/ironbar/wiki/compiling#Build-requirements) installed. Ensure you have the [build dependencies](https://github.com/JakeStanger/ironbar/wiki/compiling#Build-requirements) installed.
```sh ```sh
cargo install ironbar cargo install ironbar
``` ```
[crate](https://crates.io/crates/ironbar)
### Arch Linux ### Arch Linux
[aur package](https://aur.archlinux.org/packages/ironbar-git)
```sh ```sh
yay -S ironbar-git yay -S ironbar-git
``` ```
[aur package](https://aur.archlinux.org/packages/ironbar-git)
### Nix Flake ### Nix Flake
A flake is included with the repo which can be used with home-manager. A flake is included with the repo which can be used with Home Manager.
#### Example <details>
<summary>Example usage</summary>
Here is an example nix flake that uses Ironbar.
```nix ```nix
{ {
@ -80,13 +117,14 @@ Here is an example nix flake that uses Ironbar.
} }
``` ```
#### Binary Caching </details>
There is a Cachix cache available at `https://app.cachix.org/cache/jakestanger` There is a Cachix cache available at `https://app.cachix.org/cache/jakestanger`.
in case you don't want to compile Ironbar.
### Source ### Source
[repo](https://github.com/jakestanger/ironbar)
Ensure you have the [build dependencies](https://github.com/JakeStanger/ironbar/wiki/compiling#Build-requirements) installed. Ensure you have the [build dependencies](https://github.com/JakeStanger/ironbar/wiki/compiling#Build-requirements) installed.
```sh ```sh
@ -100,53 +138,36 @@ install target/release/ironbar ~/.local/bin/ironbar
By default, all features are enabled. By default, all features are enabled.
See [here](https://github.com/JakeStanger/ironbar/wiki/compiling#features) for controlling which features are included. See [here](https://github.com/JakeStanger/ironbar/wiki/compiling#features) for controlling which features are included.
[repo](https://github.com/jakestanger/ironbar)
## Running ## Running
All of the above installation methods provide a binary called `ironbar`. Once installed, you will need to create a config and optionally a stylesheet in `.config/ironbar`.
See the [Configuration Guide](https://github.com/JakeStanger/ironbar/wiki/configuration-guide) and [Style Guide](https://github.com/JakeStanger/ironbar/wiki/styling-guide) for full details.
Ironbar can be launched using the `ironbar` binary.
Log verbosity can be changed using `IRONBAR_LOG` or `IRONBAR_FILE_LOG`. You can use any of `error`, `warn`, `info`, `debug` or `trace`.
You can set the `IRONBAR_LOG` or `IRONBAR_FILE_LOG` environment variables to
`error`, `warn`, `info`, `debug` or `trace` to configure the log output level.
These default to `IRONBAR_LOG=info` and `IRONBAR_FILE_LOG=error`. These default to `IRONBAR_LOG=info` and `IRONBAR_FILE_LOG=error`.
File output can be found at `~/.local/share/ironbar/error.log`. File output can be found at `~/.local/share/ironbar/error.log`.
## Configuration ## Status
Ironbar gives a lot of flexibility when configuring, including multiple file formats Ironbar is an **alpha** project.
and options for scaling complexity: you can use a single config across all monitors, It is unfinished and subject to constant breaking changes, and will continue that way until the foundation is rock solid.
or configure different/multiple bars per monitor.
A full configuration guide can be found [here](https://github.com/JakeStanger/ironbar/wiki/configuration-guide). If you would like to take the risk and help shape development, any bug reports, feature requests and discussion is welcome.
## Styling I use Ironbar on my daily driver, so development is active. Features aim to be stable and well documented before being merged.
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](https://github.com/JakeStanger/ironbar/wiki/styling-guide).
## 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 ## Contribution Guidelines
Please check [here](https://github.com/JakeStanger/ironbar/blob/master/CONTRIBUTING.md). All are welcome, but I ask a few basic things to help make things easier. Please check [here](https://github.com/JakeStanger/ironbar/blob/master/CONTRIBUTING.md) for details.
## Acknowledgements ## Acknowledgements
- [Waybar](https://github.com/Alexays/Waybar) - A lot of the initial inspiration, and a pretty great bar. - [Waybar](https://github.com/Alexays/Waybar) - A lot of the initial inspiration, and a pretty great bar.
- [Rustbar](https://github.com/zeroeightysix/rustbar) - Served as a good demo for writing a basic GTK bar in Rust - [Rustbar](https://github.com/zeroeightysix/rustbar) - Served as a good demo for writing a basic GTK bar in Rust
- [Smithay Client Toolkit](https://github.com/Smithay/client-toolkit) - Essential in being able to communicate to Wayland - [Smithay Client Toolkit](https://github.com/Smithay/client-toolkit) - Essential in being able to communicate to Wayland
- [gtk-layer-shell](https://github.com/wmww/gtk-layer-shell) - Ironbar and many other projects would be impossible without this