Go to file
Félix Baylac Jacqué c38d05b04f Introduce power-profiles-daemon module
We introduce a module in charge to display and toggle on click the
power profiles via power-profiles-daemon.

https://gitlab.freedesktop.org/upower/power-profiles-daemon

This daemon is pretty widespread. It's the component used by Gnome and
KDE to manage the power profiles. The power management daemon is a
pretty important software component for laptops and other
battery-powered devices.

We're using the daemon DBus interface to:

- Fetch the available power profiles.
- Track the active power profile.
- Change the active power profile.

The original author recently gave up maintenance on the project. The
Upower group took over the maintenance burden… …and created a new
DBus name for the project. The old name is still advertised for now.
We use the old name for compatibility sake: most distributions did not
release 0.20, which introduces this new DBus name. We'll likely revisit
this in the future and point to the new bus name. See the inline
comment for more details.

Given how widespread this daemon is, I activated the module in the
default configuration.
2024-02-26 14:44:14 +01:00
.github Merge pull request #2948 from alebastr/clang-tidy-fix 2024-02-21 09:19:20 +01:00
Dockerfiles chore: update Debian CI dependencies 2024-02-19 16:35:21 -08:00
include Introduce power-profiles-daemon module 2024-02-26 14:44:14 +01:00
man chore: rename config to config.jsonc 2024-02-25 12:00:53 -08:00
nix nix: update libcava version and removal of gtk-layer-shell meson option 2024-02-20 17:57:07 +08:00
package Add archlinux PKGBUILD 2018-08-09 20:50:11 +02:00
protocol Merge pull request #2926 from alebastr/meson-cleanup 2024-02-19 23:44:52 +01:00
resources Introduce power-profiles-daemon module 2024-02-26 14:44:14 +01:00
src Introduce power-profiles-daemon module 2024-02-26 14:44:14 +01:00
subprojects Merge pull request #2836 from alebastr/require-gtk-layer-shell 2024-02-19 22:57:50 +01:00
test test: restore compatibility with older Catch2 releases 2024-02-19 17:00:01 -08:00
.clang-format refactor: lint 2022-04-06 08:37:19 +02:00
.clang-tidy Change PrivateMember styling to use trailing underscore instead of m_ in .clang-tidy 2024-02-25 11:44:55 +01:00
.editorconfig chore: Add EditorConfig file 2019-04-18 15:55:45 +02:00
.envrc feat: enable direnv and fix flake devshell output 2024-01-08 12:47:32 -06:00
.gitignore flake: update & cleanup 2023-12-02 02:41:59 +07:00
.gitmodules Add archlinux PKGBUILD 2018-08-09 20:50:11 +02:00
LICENSE Initial commit 2018-08-08 23:53:37 +02:00
Makefile make:Add phony 'test' rule 2023-03-13 00:50:19 +00:00
README.md Introduce power-profiles-daemon module 2024-02-26 14:44:14 +01:00
default.nix use the recommended way of using flake-compat 2023-02-16 20:31:02 +07:00
flake.lock chore: flake lock update 2024-01-08 09:37:48 -06:00
flake.nix feat: enable direnv and fix flake devshell output 2024-01-08 12:47:32 -06:00
meson.build Introduce power-profiles-daemon module 2024-02-26 14:44:14 +01:00
meson_options.txt feat!: drop RawSurfaceImpl with direct use of wlr-layer-shell 2024-02-17 11:23:17 -08: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 Licence Paypal Donate
Waybar

Highly customizable Wayland bar for Sway and Wlroots based compositors.
Available in all major distributions
Waybar examples

Current features

  • Sway (Workspaces, Binding mode, Focused window name)
  • River (Mapping mode, Tags, Focused window name)
  • Hyprland (Window Icons, Workspaces, Focused window name)
  • DWL (Tags) requires dwl ipc patch
  • Tray #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

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]
libevdev [KeyboardState module]
xkbregistry
upower [UPower battery 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 \
  libevdev-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 \
  upower \
  libxkbregistry-dev

Contributions welcome!
Have fun :)
The style guidelines are Google's

License

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