Go to file
Aleksei Bavshin 6d5afdaa5f
fix(network): don't block the main thread on rfkill update
Moving rfkill to the main event loop had unexpected side-effects.
Notably, the network module mutex can block all the main thread events
for several seconds while the network worker thread is sleeping.

Instead of waiting for the mutex let's hope that the worker thread
succeeds and schedule timer thread wakeup just in case.
2021-02-09 21:27:22 -08:00
.github CI: add FreeBSD to Actions 2020-12-23 20:40:44 +00:00
Dockerfiles Dockerfiles/alpine: add sndio-dev. 2020-10-04 02:54:57 -03:00
include refactor(bluetooth): remove `interval` and timer thread 2021-02-09 21:27:21 -08:00
man refactor(bluetooth): remove `interval` and timer thread 2021-02-09 21:27:21 -08:00
package Add archlinux PKGBUILD 2018-08-09 20:50:11 +02:00
protocol Update to the latest version of the foreign toplevel manager protocol 2020-12-04 08:03:43 +01:00
resources style: add 4px margins to window and workspaces modules 2020-12-02 05:12:48 -08:00
src fix(network): don't block the main thread on rfkill update 2021-02-09 21:27:22 -08:00
subprojects Update fmt subproject to 7.1.3 2020-11-30 17:35:02 -08:00
.clang-format chore: Add clang-format configuration and format MPD module 2019-04-18 15:57:57 +02:00
.editorconfig chore: Add EditorConfig file 2019-04-18 15:55:45 +02:00
.gitignore Ignore all potential build directories 2019-02-28 19:57:49 -07:00
.gitmodules Add archlinux PKGBUILD 2018-08-09 20:50:11 +02:00
.travis.yml .travis.yml: add sndio to FreeBSD run. 2020-10-04 02:54:57 -03:00
LICENSE Initial commit 2018-08-08 23:53:37 +02:00
Makefile Switch default Makefile rule from run to build 2020-03-14 16:25:33 -04:00
README.md sndio: Add module. 2020-10-04 02:54:57 -03:00
meson.build Use g_unichar_iswide to properly align calendar on CJK locales 2021-01-31 11:53:53 -08:00
meson_options.txt sndio: Add module. 2020-10-04 02:54:57 -03:00
preview-2.png chore: optimize preview 2018-10-01 18:56:58 +02:00
preview.png chore: optimize preview 2018-10-01 18:56:58 +02:00

README.md

Waybar Travis Licence Paypal Donate
Waybar

Highly customizable Wayland bar for Sway and Wlroots based compositors.
Available in Arch community or AUR, openSUSE, and Alpine Linux
Waybar examples

Current features

  • Sway (Workspaces, Binding mode, Focused window name)
  • Tray #21
  • Local time
  • Battery
  • Network
  • Bluetooth
  • Pulseaudio
  • Disk
  • Memory
  • Cpu load average
  • Temperature
  • MPD
  • Custom scripts
  • Multiple output configuration
  • And much more customizations

Configuration and Styling

See the wiki for more details.

Installation

Waybar is available from a number of Linux distributions:

Packaging status

An Ubuntu PPA with more recent versions is available here.

Building from source

$ git clone https://github.com/Alexays/Waybar
$ cd Waybar
$ meson build
$ ninja -C build
$ ./build/waybar
# If you want to install it
$ ninja -C build install
$ waybar

Dependencies

gtkmm3
jsoncpp
libsigc++
fmt
wayland
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]
libdbusmenu-gtk3 [Tray module]
libmpdclient [MPD module]
libsndio [sndio module]

Build dependencies

cmake
meson
scdoc
wayland-protocols

On Ubuntu you can install all the relevant dependencies using this command (tested with 19.10 and 20.04):

sudo apt install \
  clang-tidy \
  gobject-introspection \
  libdbusmenu-gtk3-dev \
  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

Contributions welcome! - have fun :)
The style guidelines is Google's

License

Waybar is licensed under the MIT license. See LICENSE for more information.