Modular status panel for X11 and Wayland, inspired by https://github.com/jaagr/polybar
Find a file
2020-11-25 20:41:09 +01:00
bar bar: deal with NULL exposables 2020-11-25 20:36:46 +01:00
completions log: make more logging options configurable 2020-02-05 19:42:48 +01:00
decorations meson: add 'fcft' dependency to decorations and modules 2019-12-01 18:02:23 +01:00
doc doc/yambar-modules: document the ‘script’ module 2020-11-25 20:41:07 +01:00
examples examples: my current laptop configuration 2020-01-23 17:52:31 +01:00
external moduel/river: wip: new module; 'tags' status on Wayland compositor 'river' 2020-07-23 19:00:42 +02:00
modules module/river: exclude seats while river is starting up 2020-11-25 20:41:09 +01:00
particles particle/list: assert sub particles where instantiated correctly 2020-11-25 20:41:09 +01:00
test Rename project: f00bar -> yambar 2019-09-28 20:39:45 +02:00
.build.yml Rename project: f00bar -> yambar 2019-09-28 20:39:45 +02:00
.gitignore gitignore: subprojects directory 2020-01-11 14:45:56 +01:00
.gitlab-ci.yml ci: log toolchain version information 2020-07-20 19:17:02 +02:00
.gitmodules fcft/tllist: remove git submodules 2020-01-11 14:43:26 +01:00
CHANGELOG.md module/mpd: don’t overload enum mpd_state 2020-11-09 20:27:42 +01:00
color.h initial commit: wip 2018-11-17 11:30:33 +01:00
config-verify.c config-verify: add conf_verify_list() 2020-06-20 21:45:43 +02:00
config-verify.h config-verify: add conf_verify_list() 2020-06-20 21:45:43 +02:00
config.c fcft: adjust to fcft-2.0 API changes 2020-04-22 11:50:29 +02:00
config.h fcft: adjust to fcft-2.0 API changes 2020-04-22 11:50:29 +02:00
decoration.h cairo: replace cairo with pixman in decos, particles and modules 2019-09-22 01:56:58 +02:00
generate-version.sh generate-version: check for .git directory in *src* dir 2020-03-06 22:16:33 +01:00
LICENSE license: MIT 2019-01-02 11:24:28 +01:00
log.c log: make syslog facility and level configurable, always log filename+lineno 2020-02-20 19:49:27 +01:00
log.h log: make syslog facility and level configurable, always log filename+lineno 2020-02-20 19:49:27 +01:00
main.c main: block SIGCHLD globally 2020-11-25 20:36:44 +01:00
meson.build module/alsa+backlight: round() percentage values 2020-09-24 13:57:05 +02:00
meson_options.txt meson: initial support for building plugins as shared libraries 2019-05-01 18:21:35 +02:00
module.c bar: deal with NULL exposables 2020-11-25 20:36:46 +01:00
module.h modules: move 'content' and 'anchors' to MODULE_COMMON_ATTRS 2020-01-24 21:08:39 +01:00
particle.c particle: reset signals and signal mask when executing an on-click handler 2020-11-25 20:41:09 +01:00
particle.h fcft: adjust to fcft-2.0 API changes 2020-04-22 11:50:29 +02:00
PKGBUILD meson/pkgbuild: bump version to 1.5.0 2020-09-05 09:25:13 +02:00
PKGBUILD.wayland-only meson/pkgbuild: bump version to 1.5.0 2020-09-05 09:25:13 +02:00
plugin.c module/script: wip: new plugin, reads data from a user provided script/binary 2020-11-25 20:36:44 +01:00
plugin.h plugins: export a const function pointer interface struct 2019-01-26 18:32:04 +01:00
README.md readme installation: mention -Dbackend-*=disabled|enabled 2020-09-24 20:15:06 +02: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 tag: add support for "hex" and "oct" format modifiers 2019-01-21 21:05:38 +01:00
tag.h Reduce header intra-dependencies 2019-01-13 19:42:16 +01: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 yml: don’t overwrite errors from yml_parser_parse() 2020-09-24 13:38:56 +02:00
yml.h yml: add line/column info to every node 2019-01-11 23:20:06 +01:00

Yambar

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).

Modules

Available modules:

  • alsa
  • backlight
  • battery
  • clock
  • i3 (and Sway)
  • label
  • mpd
  • network
  • removables
  • xkb (XCB backend only)
  • xwindow (XCB backend only)

Installation

If you have not installed tllist and fcft as system libraries, clone them into the subprojects directory:

mkdir -p subprojects
pushd subprojects
git clone https://codeberg.org/dnkl/tllist.git
git clone https://codeberg.org/dnkl/fcft.git
popd

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