Modular status panel for X11 and Wayland, inspired by https://github.com/jaagr/polybar
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Daniel Eklöf 8deac539ef
module/river: new workaround for river issue 69
1 month ago
.builds ci (sr.ht): pull directly from git.sr.ht 4 months ago
bar particle/on-click: support next/previous buttons 2 months ago
completions main: add -d,--log-level=info|warning|error|none 1 year ago
decorations overline: new decoration 10 months ago
doc particle/on-click: support next/previous buttons 2 months ago
examples fix configurations in example scripts 5 months ago
external module/river: add support for the ‘mode’ event 6 months ago
modules module/river: new workaround for river issue 69 1 month ago
particles particle/string: don’t try to call c32len() on a NULL string 6 months ago
subprojects subprojects: use meson wrap files for tllist+fcft 2 years ago
test Implement conditions on tag 8 months ago
.clang-format misc: add format files for clang-format and editorconfig 12 months ago
.editorconfig misc: add format files for clang-format and editorconfig 12 months ago
.gitignore subprojects: use meson wrap files for tllist+fcft 2 years ago
.gitlab-ci.yml ci: use fcft master branch 10 months ago
.gitmodules fcft/tllist: remove git submodules 3 years ago
.woodpecker.yml ci: use fcft master branch 10 months ago
CHANGELOG.md module/sway-xkb: don’t add the “same” device multiple times 2 months ago
LICENSE license: MIT 4 years ago
PKGBUILD meson/pkgbuild: bump version to 1.8.0 10 months ago
PKGBUILD.wayland-only meson/pkgbuild: bump version to 1.8.0 10 months ago
README.md ci: codeberg CI 1 year ago
char32.c char32: only include stdc-predef.h if it is available 9 months ago
char32.h fcft: adapt to API changes in fcft-3.x 10 months ago
color.h initial commit: wip 4 years ago
config-verify.c particle/on-click: support next/previous buttons 2 months ago
config-verify.h config: add inheritable option “font-shaping” 10 months ago
config.c particle/on-click: support next/previous buttons 2 months ago
config.h config: add inheritable option “font-shaping” 10 months ago
decoration.h cairo: replace cairo with pixman in decos, particles and modules 3 years ago
font-shaping.h config: add inheritable option “font-shaping” 10 months ago
generate-version.sh generate-version: handle git repo not having any tags 1 year ago
log.c log: fold long line 10 months ago
log.h log: pull in log.{c,h} from foot 1 year ago
main.c fcft: adapt to API changes in fcft-3.x 10 months ago
meson.build meson: declare CFLAGS dependencies for xcb-stuff 5 months ago
meson_options.txt Make libmpdclient an optional dependency 1 year ago
module.c particle: remove cairo context from begin_expose() 3 years ago
module.h module: add ‘description()’ to the module interface 1 year ago
particle.c particle/on-click: support next/previous buttons 2 months ago
particle.h particle/on-click: support next/previous buttons 2 months ago
plugin.c modules: creates disk-io-module 6 months ago
plugin.h plugins: export a const function pointer interface struct 4 years ago
screenshot.png screenshot: update 3 years ago
stride.h font: initial port from cairo scaled fonts to raw freetype + pixman 3 years ago
tag.c tag: for now, always use 2 decimals for floats 6 months ago
tag.h Implement conditions on tag 8 months ago
xcb.c misc: xcb_connect() always returns a non-NULL pointer 4 years ago
xcb.h xcb: extern declare cached XCB atoms in header file 3 years ago
yambar.desktop desktop: add Desktop Entry file 3 years ago
yml.c yml: silence unused variable warning with Clang 13 1 year ago
yml.h yml: add line/column info to every node 4 years ago

README.md

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 5 Free:style=solid:size=12"}
          - string: {text: "{date}", right-margin: 5}
          - string: {text: , font: "Font Awesome 5 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
  • i3 (and Sway)
  • label
  • mpd
  • network
  • 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