Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vars1ty/HybridBar
A status bar focused on wlroots Wayland compositors
https://github.com/vars1ty/HybridBar
gtk gtk-layer-shell gtk3 linux rust status-bar wayland widgets
Last synced: about 1 month ago
JSON representation
A status bar focused on wlroots Wayland compositors
- Host: GitHub
- URL: https://github.com/vars1ty/HybridBar
- Owner: vars1ty
- License: mit
- Created: 2022-08-17T21:04:26.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-05-08T23:27:11.000Z (7 months ago)
- Last Synced: 2024-10-25T09:12:14.882Z (about 2 months ago)
- Topics: gtk, gtk-layer-shell, gtk3, linux, rust, status-bar, wayland, widgets
- Language: Rust
- Homepage:
- Size: 534 KB
- Stars: 192
- Watchers: 3
- Forks: 10
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-hyprland - Hybrid
README
# Hybrid Bar
A simple status bar focused on wlroots Wayland compositors## Preview
With blur through Hyprland.
![image](https://user-images.githubusercontent.com/54314240/197680577-2bc0cff4-2438-4c8d-8428-11499d0519c6.png)The bottom bar is also made with Hybrid.
## What does it support?
It supports:
- Straight-forward configuration;
- Labels with shell commands (+ listen support);
- Spacings (a.k.a. Separators if styled);
- Boxes with child widgets;
- Custom update-rate for dynamic labels;
- Cava;
- Buttons with shell commands;
- Tooltips for buttons and labels;
- Markup for buttons and labels;
- Top and Bottom pinning;
- Transparency (+ blur if your compositor allows for blurring surface layers);
- Experimental system tray via `stray`;
- Different monitors for each configuration## I have no config
If you installed outside the AUR, copy the example from `examples/config.json` into `~/.config/HybridBar/`.## Does it only work on wlroots Compositors?
Nope, it's been tested on KDE as well and it worked just fine.It just won't work on GNOME as it hasn't implemented the `wlr-layer-shell` protocol.
# Config Layout
I'm assuming you are familiar with JSON. If you aren't, well too bad.## Base Setup
Before you can use the bar, you have to adjust the color and alpha.RGB Colors are 0-255 as a 32-bit integer, Alpha is 0.0-1.0 as a 32-bit float.
Here's an example:
```json
{
"hybrid": {
"namespace": "hybrid-bar",
"r": 10,
"g": 10,
"b": 10,
"a": 0.5
}
}
```
## CSS Support
CSS is supported and you can make it auto-load on startup by making a `style.css` file next to your `config.json` on the same path.If you want a sample CSS which has good defaults, check `examples/style.css`.
## Environment Variables
`HYBRID_LOG` = `1` : Logs Hybrid output to stdout.`HYBRID_CONFIG` = `name.json` : Locates the config inside the HybridBar config path, then uses it for the rest of the bars session.
## Background Updates
Hybrid automatically performs background updates for dynamic labels/tooltips and Cava widgets.The rate for updating labels is read from the labels `update_rate` key (u64).
It's worth noting that low update-rates may lead to performance decreases, the value specified is in **milliseconds**.
# Build dependencies
1. rust
2. gtk-layer-shell
3. gtk3
4. a compositor that supports layer-shells
- This excludes GNOME. KDE, Hyprland and Sway have been confirmed working.## Installation
Arch Linux: `yay/paru -S hybrid-bar`Other distros: `cargo install hybrid-bar`
## Building
1. `git clone https://github.com/vars1ty/HybridBar`
2. `cd HybridBar`
3. `cargo build --release`
4. `cd target/release`
5. Done, the executable is called `hybrid-bar`.