|
|
@@ -1,161 +1,140 @@
|
|
|
|
# Waybar [](LICENSE) [](https://paypal.me/ARouillard)<br>
|
|
|
|
# Waybar
|
|
|
|
|
|
|
|
|
|
|
|
> Highly customizable Wayland bar for Sway and Wlroots based compositors.<br>
|
|
|
|
[](LICENSE)
|
|
|
|
> Available in [all major distributions](https://github.com/Alexays/Waybar/wiki/Installation)<br>
|
|
|
|
[](https://paypal.me/ARouillard)
|
|
|
|
> *Waybar [examples](https://github.com/Alexays/Waybar/wiki/Examples)*
|
|
|
|
[](https://github.com/Alexays/Waybar/actions/workflows/linux.yml)
|
|
|
|
|
|
|
|
[](https://github.com/Alexays/Waybar/releases)
|
|
|
|
|
|
|
|
|
|
|
|
#### Current features
|
|
|
|

|
|
|
|
- Sway (Workspaces, Binding mode, Focused window name)
|
|
|
|
|
|
|
|
- River (Mapping mode, Tags, Focused window name, Layout)
|
|
|
|
|
|
|
|
- Hyprland (Window Icons, Workspaces, Focused window name)
|
|
|
|
|
|
|
|
- Niri (Workspaces, Focused window name, Language)
|
|
|
|
|
|
|
|
- Mango (Workspaces, Focused window name, Language, Keymode)
|
|
|
|
|
|
|
|
- DWL (Tags, Focused window name) [requires dwl ipc patch](https://codeberg.org/dwl/dwl-patches/src/branch/main/patches/ipc)
|
|
|
|
|
|
|
|
- Tray [#21](https://github.com/Alexays/Waybar/issues/21)
|
|
|
|
|
|
|
|
- Local time
|
|
|
|
|
|
|
|
- Battery
|
|
|
|
|
|
|
|
- UPower
|
|
|
|
|
|
|
|
- Power profiles daemon
|
|
|
|
|
|
|
|
- Network
|
|
|
|
|
|
|
|
- Bluetooth
|
|
|
|
|
|
|
|
- Pulseaudio
|
|
|
|
|
|
|
|
- Privacy Info
|
|
|
|
|
|
|
|
- Wireplumber
|
|
|
|
|
|
|
|
- Disk
|
|
|
|
|
|
|
|
- Memory
|
|
|
|
|
|
|
|
- Cpu load average
|
|
|
|
|
|
|
|
- Temperature
|
|
|
|
|
|
|
|
- MPD
|
|
|
|
|
|
|
|
- Custom scripts
|
|
|
|
|
|
|
|
- Custom image
|
|
|
|
|
|
|
|
- Multiple output configuration
|
|
|
|
|
|
|
|
- And many more customizations
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#### Configuration and Styling
|
|
|
|
> Highly customizable Wayland bar for Sway and wlroots-based compositors.<br>
|
|
|
|
|
|
|
|
> Available in [all major distributions](https://github.com/Alexays/Waybar/wiki/Installation).
|
|
|
|
|
|
|
|
|
|
|
|
[See the wiki for more details](https://github.com/Alexays/Waybar/wiki).
|
|
|
|
**[Installation](#installation) · [Wiki](https://github.com/Alexays/Waybar/wiki) · [Configuration](https://github.com/Alexays/Waybar/wiki/Configuration) · [Styling](https://github.com/Alexays/Waybar/wiki/Styling) · [Examples](https://github.com/Alexays/Waybar/wiki/Examples) · [FAQ](https://github.com/Alexays/Waybar/wiki/FAQ)**
|
|
|
|
|
|
|
|
|
|
|
|
### Installation
|
|
|
|
## Features
|
|
|
|
|
|
|
|
|
|
|
|
Waybar is available from a number of Linux distributions:
|
|
|
|
### Compositor integration
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Compositor | Workspaces / Tags | Window | Layout | Language | Mode |
|
|
|
|
|
|
|
|
| --- | :---: | :---: | :---: | :---: | :---: |
|
|
|
|
|
|
|
|
| [Sway](https://github.com/Alexays/Waybar/wiki/Module:-Sway) | ✅ | ✅ | | ✅ | ✅ |
|
|
|
|
|
|
|
|
| [River](https://github.com/Alexays/Waybar/wiki/Module:-River) | ✅ | ✅ | ✅ | | ✅ |
|
|
|
|
|
|
|
|
| [Hyprland](https://github.com/Alexays/Waybar/wiki/Module:-Hyprland) | ✅ | ✅ | | ✅ | ✅ |
|
|
|
|
|
|
|
|
| [Niri](https://github.com/Alexays/Waybar/wiki/Module:-Niri) | ✅ | ✅ | | ✅ | |
|
|
|
|
|
|
|
|
| [Mango](https://github.com/Alexays/Waybar/wiki/Module:-Mango) | ✅ | ✅ | ✅ | ✅ | ✅ |
|
|
|
|
|
|
|
|
| [DWL](https://github.com/Alexays/Waybar/wiki/Module:-Dwl) | ✅ | ✅ | | | |
|
|
|
|
|
|
|
|
| [Wayfire](https://github.com/Alexays/Waybar/wiki/Module:-Wayfire) | ✅ | ✅ | | | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
> DWL requires the [dwl IPC patch](https://codeberg.org/dwl/dwl-patches/src/branch/main/patches/ipc).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Modules
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- **Power & hardware** — [Battery](https://github.com/Alexays/Waybar/wiki/Module:-Battery), [UPower](https://github.com/Alexays/Waybar/wiki/Module:-UPower), [Power profiles daemon](https://github.com/Alexays/Waybar/wiki/Module:-PowerProfilesDaemon), [Backlight](https://github.com/Alexays/Waybar/wiki/Module:-Backlight), [CPU](https://github.com/Alexays/Waybar/wiki/Module:-CPU), [Memory](https://github.com/Alexays/Waybar/wiki/Module:-Memory), [Disk](https://github.com/Alexays/Waybar/wiki/Module:-Disk), [Temperature](https://github.com/Alexays/Waybar/wiki/Module:-Temperature)
|
|
|
|
|
|
|
|
- **Connectivity** — [Network](https://github.com/Alexays/Waybar/wiki/Module:-Network), [Bluetooth](https://github.com/Alexays/Waybar/wiki/Module:-Bluetooth), [GPS](https://github.com/Alexays/Waybar/wiki/Module:-GPS), [WWAN](https://github.com/Alexays/Waybar/wiki/Module:-WWAN)
|
|
|
|
|
|
|
|
- **Audio & media** — [PulseAudio](https://github.com/Alexays/Waybar/wiki/Module:-PulseAudio), [WirePlumber](https://github.com/Alexays/Waybar/wiki/Module:-WirePlumber), [JACK](https://github.com/Alexays/Waybar/wiki/Module:-JACK), [sndio](https://github.com/Alexays/Waybar/wiki/Module:-Sndio), [Cava](https://github.com/Alexays/Waybar/wiki/Module:-Cava), [MPD](https://github.com/Alexays/Waybar/wiki/Module:-MPD), [MPRIS](https://github.com/Alexays/Waybar/wiki/Module:-MPRIS)
|
|
|
|
|
|
|
|
- **Desktop** — [Clock & calendar](https://github.com/Alexays/Waybar/wiki/Module:-Clock), [System tray](https://github.com/Alexays/Waybar/wiki/Module:-Tray), [Idle inhibitor](https://github.com/Alexays/Waybar/wiki/Module:-Idle-Inhibitor), [Keyboard state](https://github.com/Alexays/Waybar/wiki/Module:-Keyboard-State), [Privacy](https://github.com/Alexays/Waybar/wiki/Module:-Privacy), [Gamemode](https://github.com/Alexays/Waybar/wiki/Module:-Gamemode), [Systemd failed units](https://github.com/Alexays/Waybar/wiki/Module:-Systemd-failed-units), [Image](https://github.com/Alexays/Waybar/wiki/Module:-Image), [Custom scripts](https://github.com/Alexays/Waybar/wiki/Module:-Custom)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
…and more. Every module is documented on the [wiki](https://github.com/Alexays/Waybar/wiki) (see the *Modules* sidebar).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Getting started
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
|
|
|
git clone https://github.com/Alexays/Waybar
|
|
|
|
|
|
|
|
cd Waybar
|
|
|
|
|
|
|
|
meson setup build
|
|
|
|
|
|
|
|
ninja -C build
|
|
|
|
|
|
|
|
./build/waybar # run without installing
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Waybar launches with a sensible [default config](resources/config.jsonc). To make
|
|
|
|
|
|
|
|
it yours, copy the default config and stylesheet into `~/.config/waybar/` and edit
|
|
|
|
|
|
|
|
them. The [Configuration](https://github.com/Alexays/Waybar/wiki/Configuration)
|
|
|
|
|
|
|
|
and [Styling](https://github.com/Alexays/Waybar/wiki/Styling) guides cover every
|
|
|
|
|
|
|
|
option, and [Examples](https://github.com/Alexays/Waybar/wiki/Examples) has
|
|
|
|
|
|
|
|
ready-to-use community setups.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Installation
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Waybar is packaged by most distributions:
|
|
|
|
|
|
|
|
|
|
|
|
[](https://repology.org/project/waybar/versions)
|
|
|
|
[](https://repology.org/project/waybar/versions)
|
|
|
|
|
|
|
|
|
|
|
|
An Ubuntu PPA with more recent versions is available
|
|
|
|
An Ubuntu PPA with more recent versions is available [here](https://launchpad.net/~nschloe/+archive/ubuntu/waybar).
|
|
|
|
[here](https://launchpad.net/~nschloe/+archive/ubuntu/waybar).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
### Building from source
|
|
|
|
#### Building from source
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
```bash
|
|
|
|
$ git clone https://github.com/Alexays/Waybar
|
|
|
|
git clone https://github.com/Alexays/Waybar
|
|
|
|
$ cd Waybar
|
|
|
|
cd Waybar
|
|
|
|
$ meson setup build
|
|
|
|
meson setup build
|
|
|
|
$ ninja -C build
|
|
|
|
ninja -C build
|
|
|
|
$ ./build/waybar
|
|
|
|
ninja -C build install # optional
|
|
|
|
# If you want to install it
|
|
|
|
|
|
|
|
$ ninja -C build install
|
|
|
|
|
|
|
|
$ waybar
|
|
|
|
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
|
|
**Dependencies**
|
|
|
|
<details>
|
|
|
|
|
|
|
|
<summary><b>Runtime dependencies</b></summary>
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
```
|
|
|
|
gtkmm3
|
|
|
|
gtkmm3 jsoncpp libsigc++ fmt wayland
|
|
|
|
jsoncpp
|
|
|
|
chrono-date spdlog xkbregistry libgtk-3-dev upower
|
|
|
|
libsigc++
|
|
|
|
|
|
|
|
fmt
|
|
|
|
libpulse [Pulseaudio module]
|
|
|
|
wayland
|
|
|
|
libnl [Network module]
|
|
|
|
chrono-date
|
|
|
|
|
|
|
|
spdlog
|
|
|
|
|
|
|
|
libgtk-3-dev [gtk-layer-shell]
|
|
|
|
|
|
|
|
gobject-introspection [gtk-layer-shell]
|
|
|
|
|
|
|
|
libgirepository1.0-dev [gtk-layer-shell]
|
|
|
|
|
|
|
|
libpulse [Pulseaudio module]
|
|
|
|
|
|
|
|
libnl [Network module]
|
|
|
|
|
|
|
|
libappindicator-gtk3 [Tray module]
|
|
|
|
libappindicator-gtk3 [Tray module]
|
|
|
|
libdbusmenu-gtk3 [Tray module]
|
|
|
|
libdbusmenu-gtk3 [Tray module]
|
|
|
|
libmpdclient [MPD module]
|
|
|
|
libmpdclient [MPD module]
|
|
|
|
libsndio [sndio module]
|
|
|
|
libsndio [sndio module]
|
|
|
|
libevdev [KeyboardState module]
|
|
|
|
libevdev [KeyboardState module]
|
|
|
|
xkbregistry
|
|
|
|
|
|
|
|
upower [UPower battery module]
|
|
|
|
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
</details>
|
|
|
|
|
|
|
|
|
|
|
|
**Build dependencies**
|
|
|
|
<details>
|
|
|
|
|
|
|
|
<summary><b>Build dependencies</b></summary>
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
```
|
|
|
|
cmake
|
|
|
|
cmake meson scdoc wayland-protocols
|
|
|
|
meson
|
|
|
|
|
|
|
|
scdoc
|
|
|
|
|
|
|
|
wayland-protocols
|
|
|
|
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
</details>
|
|
|
|
|
|
|
|
|
|
|
|
On Ubuntu, you can install all the relevant dependencies using this command (tested with 19.10 and 20.04):
|
|
|
|
<details>
|
|
|
|
|
|
|
|
<summary><b>Install dependencies — Ubuntu</b></summary>
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
```bash
|
|
|
|
sudo apt install \
|
|
|
|
sudo apt install \
|
|
|
|
clang-tidy \
|
|
|
|
clang-tidy gobject-introspection libdbusmenu-gtk3-dev libevdev-dev \
|
|
|
|
gobject-introspection \
|
|
|
|
libfmt-dev libgirepository1.0-dev libgtk-3-dev libgtkmm-3.0-dev \
|
|
|
|
libdbusmenu-gtk3-dev \
|
|
|
|
libinput-dev libjsoncpp-dev libmpdclient-dev libnl-3-dev libnl-genl-3-dev \
|
|
|
|
libevdev-dev \
|
|
|
|
libpulse-dev libsigc++-2.0-dev libspdlog-dev libwayland-dev scdoc upower \
|
|
|
|
libfmt-dev \
|
|
|
|
|
|
|
|
libgirepository1.0-dev \
|
|
|
|
|
|
|
|
libgtk-3-dev \
|
|
|
|
|
|
|
|
libgtkmm-3.0-dev \
|
|
|
|
|
|
|
|
libinput-dev \
|
|
|
|
|
|
|
|
libjsoncpp-dev \
|
|
|
|
|
|
|
|
libmpdclient-dev \
|
|
|
|
|
|
|
|
libnl-3-dev \
|
|
|
|
|
|
|
|
libnl-genl-3-dev \
|
|
|
|
|
|
|
|
libpulse-dev \
|
|
|
|
|
|
|
|
libsigc++-2.0-dev \
|
|
|
|
|
|
|
|
libspdlog-dev \
|
|
|
|
|
|
|
|
libwayland-dev \
|
|
|
|
|
|
|
|
scdoc \
|
|
|
|
|
|
|
|
upower \
|
|
|
|
|
|
|
|
libxkbregistry-dev
|
|
|
|
libxkbregistry-dev
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
</details>
|
|
|
|
|
|
|
|
|
|
|
|
On Arch, you can use this command:
|
|
|
|
<details>
|
|
|
|
|
|
|
|
<summary><b>Install dependencies — Arch</b></summary>
|
|
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
```bash
|
|
|
|
pacman -S --asdeps \
|
|
|
|
pacman -S --asdeps \
|
|
|
|
gtkmm3 \
|
|
|
|
gtkmm3 jsoncpp libsigc++ fmt wayland chrono-date spdlog gtk3 \
|
|
|
|
jsoncpp \
|
|
|
|
gobject-introspection libgirepository libpulse libnl libappindicator-gtk3 \
|
|
|
|
libsigc++ \
|
|
|
|
libdbusmenu-gtk3 libmpdclient sndio libevdev libxkbcommon upower meson \
|
|
|
|
fmt \
|
|
|
|
cmake scdoc wayland-protocols glib2-devel
|
|
|
|
wayland \
|
|
|
|
|
|
|
|
chrono-date \
|
|
|
|
|
|
|
|
spdlog \
|
|
|
|
|
|
|
|
gtk3 \
|
|
|
|
|
|
|
|
gobject-introspection \
|
|
|
|
|
|
|
|
libgirepository \
|
|
|
|
|
|
|
|
libpulse \
|
|
|
|
|
|
|
|
libnl \
|
|
|
|
|
|
|
|
libappindicator-gtk3 \
|
|
|
|
|
|
|
|
libdbusmenu-gtk3 \
|
|
|
|
|
|
|
|
libmpdclient \
|
|
|
|
|
|
|
|
sndio \
|
|
|
|
|
|
|
|
libevdev \
|
|
|
|
|
|
|
|
libxkbcommon \
|
|
|
|
|
|
|
|
upower \
|
|
|
|
|
|
|
|
meson \
|
|
|
|
|
|
|
|
cmake \
|
|
|
|
|
|
|
|
scdoc \
|
|
|
|
|
|
|
|
wayland-protocols \
|
|
|
|
|
|
|
|
glib2-devel
|
|
|
|
|
|
|
|
```
|
|
|
|
```
|
|
|
|
|
|
|
|
</details>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## Contributing
|
|
|
|
|
|
|
|
|
|
|
|
Contributions welcome!<br>
|
|
|
|
Contributions are welcome — see [CONTRIBUTING.md](CONTRIBUTING.md). The style
|
|
|
|
Have fun :)<br>
|
|
|
|
guidelines are [Google's C++ style](https://google.github.io/styleguide/cppguide.html).
|
|
|
|
The style guidelines are [Google's](https://google.github.io/styleguide/cppguide.html)
|
|
|
|
|
|
|
|
|
|
|
|
> **Docs live in the man pages.** Module documentation is written in
|
|
|
|
|
|
|
|
> [`man/`](man) (scdoc) and auto-synced to the wiki. Edit the man page, not the
|
|
|
|
|
|
|
|
> wiki — see [`.github/wiki`](.github/wiki).
|
|
|
|
|
|
|
|
|
|
|
|
> [!CAUTION]
|
|
|
|
> [!CAUTION]
|
|
|
|
> Distributions of Waybar are only released on the [official GitHub page](https://github.com/Alexays/Waybar).<br/>
|
|
|
|
> Distributions of Waybar are only released on the [official GitHub page](https://github.com/Alexays/Waybar).<br>
|
|
|
|
> Waybar does **not** have an official website. Do not trust any sites that claim to be official.
|
|
|
|
> Waybar does **not** have an official website. Do not trust any site claiming to be official.
|
|
|
|
|
|
|
|
|
|
|
|
## License
|
|
|
|
## License
|
|
|
|
|
|
|
|
|
|
|
|
Waybar is licensed under the MIT license. [See LICENSE for more information](https://github.com/Alexays/Waybar/blob/master/LICENSE).
|
|
|
|
Waybar is licensed under the MIT license. [See LICENSE for details](https://github.com/Alexays/Waybar/blob/master/LICENSE).
|
|
|
|