Modular status panel for X11 and Wayland, inspired by https://github.com/jaagr/polybar
Find a file
2023-01-02 11:51:43 +01:00
.builds ci (sr.ht): it’s pulseaudio-dev, not libpulse-dev 2022-12-13 10:47:07 +01:00
bar bar: also log module name when logging a failed module 2022-12-14 12:05:34 +01:00
completions main: add -d,--log-level=info|warning|error|none 2021-08-15 11:43:49 +02:00
decorations overline: new decoration 2022-02-10 20:49:09 +01:00
doc doc: tags: add a couple of formatting examples 2023-01-02 11:51:43 +01:00
examples module/network: poll-interval: convert value from ‘seconds’ to ‘milliseconds’ 2022-12-22 12:06:15 +01:00
external module/river: add support for the ‘mode’ event 2022-06-02 17:24:42 +02:00
modules module/i3: fix regression in handling of persistent workspaces 2022-12-28 15:21:46 +01:00
particles Update Font Awesome 5 to 6 2022-12-21 17:06:25 +01:00
subprojects subprojects: use meson wrap files for tllist+fcft 2020-12-25 12:22:15 +01:00
test Implement conditions on tag 2022-04-23 17:13:24 -03:00
.clang-format misc: add format files for clang-format and editorconfig 2021-12-21 18:44:37 +01:00
.editorconfig misc: add format files for clang-format and editorconfig 2021-12-21 18:44:37 +01:00
.gitignore subprojects: use meson wrap files for tllist+fcft 2020-12-25 12:22:15 +01:00
.gitlab-ci.yml ci: install pipewire-dev; should ensure we build the pipewire plugin 2022-12-13 10:45:08 +01:00
.gitmodules fcft/tllist: remove git submodules 2020-01-11 14:43:26 +01:00
.woodpecker.yml ci (woodpecker): add pipewire-dev to x86 builds 2022-12-14 10:54:26 +01:00
CHANGELOG.md implement field width tag format option 2023-01-01 16:22:44 -03:00
char32.c char32: only include stdc-predef.h if it is available 2022-03-20 10:50:57 +01:00
char32.h fcft: adapt to API changes in fcft-3.x 2022-02-05 12:51:08 +01:00
color.h initial commit: wip 2018-11-17 11:30:33 +01:00
config-verify.c particle/on-click: support next/previous buttons 2022-10-04 21:14:29 +02:00
config-verify.h config: add inheritable option “font-shaping” 2022-02-23 18:43:13 +01:00
config.c particle/on-click: support next/previous buttons 2022-10-04 21:14:29 +02:00
config.h config: add inheritable option “font-shaping” 2022-02-23 18:43:13 +01:00
decoration.h cairo: replace cairo with pixman in decos, particles and modules 2019-09-22 01:56:58 +02:00
font-shaping.h config: add inheritable option “font-shaping” 2022-02-23 18:43:13 +01:00
generate-version.sh generate-version: handle git repo not having any tags 2021-10-11 20:21:07 +02:00
LICENSE license: MIT 2019-01-02 11:24:28 +01:00
log.c log: fold long line 2022-02-05 12:50:39 +01:00
log.h log: pull in log.{c,h} from foot 2021-08-15 11:41:12 +02:00
main.c fcft: adapt to API changes in fcft-3.x 2022-02-05 12:51:08 +01:00
meson.build meson/pkgbuild: bump version to 1.9.0 2022-12-17 10:29:11 +01:00
meson_options.txt meson: make ‘foreign-toplevel’ plugin compile time optional 2022-12-14 10:08:48 +01:00
module.c particle: remove cairo context from begin_expose() 2019-09-22 00:55:06 +02:00
module.h module: const:ify ‘module’ argument to module->description() 2022-12-14 12:05:17 +01:00
particle.c particle/on-click: support next/previous buttons 2022-10-04 21:14:29 +02:00
particle.h particle/on-click: support next/previous buttons 2022-10-04 21:14:29 +02:00
PKGBUILD meson/pkgbuild: bump version to 1.9.0 2022-12-17 10:29:11 +01:00
PKGBUILD.wayland-only meson/pkgbuild: bump version to 1.9.0 2022-12-17 10:29:11 +01:00
plugin.c plugin: use auto-generated defines for enabled plugins 2022-12-14 10:16:54 +01:00
plugin.h plugins: export a const function pointer interface struct 2019-01-26 18:32:04 +01:00
README.md Update Font Awesome 5 to 6 2022-12-21 17:06:25 +01:00
screenshot.png screenshot: update 2019-09-28 21:20:03 +02:00
stride.h font: initial port from cairo scaled fonts to raw freetype + pixman 2019-09-22 00:50:11 +02:00
tag.c implement field width tag format option 2023-01-01 16:22:44 -03:00
tag.h Implement conditions on tag 2022-04-23 17:13:24 -03:00
xcb.c misc: xcb_connect() always returns a non-NULL pointer 2019-01-19 18:45:15 +01:00
xcb.h xcb: extern declare cached XCB atoms in header file 2020-06-05 13:30:08 +02:00
yambar.desktop desktop: add Desktop Entry file 2019-09-29 20:58:15 +02:00
yml.c modules/dwl: new module 2022-12-13 15:56:16 +01:00
yml.h modules/dwl: new module 2022-12-13 15:56:16 +01:00

CI status

Yambar

Packaging status

Index

  1. Introduction
  2. Configuration
  3. Modules
  4. Installation
  5. Bugs

Introduction

screenshot

yambar is a lightweight and configurable status panel (bar, for short) for X11 and Wayland, that goes to great lengths to be both CPU and battery efficient - polling is only done when absolutely necessary.

It has a number of modules that provide information in the form of tags. For example, the clock module has a date tag that contains the current date.

The modules do not know how to present the information though. This is instead done by particles. And the user, you, decides which particles (and thus how to present the data) to use.

Furthermore, each particle can have a decoration - a background color or a graphical underline, for example.

There is no support for images or icons. use an icon font (e.g. Font Awesome, or Material Icons) if you want a graphical representation.

There are a number of modules and particles builtin. More can be added as plugins. You can even write your own!

To summarize: a bar displays information provided by modules, using particles and decorations. How is configured by you.

Configuration

Yambar is configured using YAML, in ~/.config/yambar/config.yml. It must define a top-level dictionary named bar:

bar:
  height: 26
  location: top
  background: 000000ff

  right:
    - clock:
        content:
          - string: {text: , font: "Font Awesome 6 Free:style=solid:size=12"}
          - string: {text: "{date}", right-margin: 5}
          - string: {text: , font: "Font Awesome 6 Free:style=solid:size=12"}
          - string: {text: "{time}"}

For details, see the man pages (yambar(5) is a good start).

Example configurations can be found in examples.

Modules

Available modules:

  • alsa
  • backlight
  • battery
  • clock
  • cpu
  • disk-io
  • dwl
  • foreign-toplevel
  • i3 (and Sway)
  • label
  • mem
  • mpd
  • network
  • pulse
  • removables
  • river
  • script (see script examples)
  • sway-xkb
  • xkb (XCB backend only)
  • xwindow (XCB backend only)

Installation

To build, first, create a build directory, and switch to it:

mkdir -p bld/release && cd bld/release

Second, configure the build (if you intend to install it globally, you might also want --prefix=/usr):

meson --buildtype=release ../..

Optionally, explicitly disable a backend (or enable, if you want a configuration error if not all dependencies are met) by adding either -Dbackend-x11=disabled|enabled or -Dbackend-wayland=disabled|enabled to the meson command line.

Three, build it:

ninja

Optionally, install it:

ninja install

Bugs

Please report bugs to https://codeberg.org/dnkl/yambar/issues

The report should contain the following:

  • Which Wayland compositor (and version) you are running
  • Yambar version (yambar --version)
  • Log output from yambar (start yambar from a terminal)
  • If reporting a crash, please try to provide a bt full backtrace with symbols (i.e. use a debug build)
  • Steps to reproduce. The more details the better