Modular status panel for X11 and Wayland, inspired by https://github.com/jaagr/polybar
Find a file
2020-01-15 14:19:42 +01:00
bar bar/wayland: don't use wl_display_dispatch() 2020-01-03 21:24:26 +01:00
completions Rename project: f00bar -> yambar 2019-09-28 20:39:45 +02:00
decorations meson: add 'fcft' dependency to decorations and modules 2019-12-01 18:02:23 +01:00
doc meson: fix version generation from git 2019-10-19 21:47:21 +02:00
external wlr-protocols: bump 2019-12-01 16:25:10 +01:00
modules meson: add 'fcft' dependency to decorations and modules 2019-12-01 18:02:23 +01:00
particles particle/string: remove useless debug log 2019-12-01 19:29:27 +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: install git and close fcft+tllist subprojects 2020-01-15 11:18:01 +01:00
.gitmodules fcft/tllist: remove git submodules 2020-01-11 14:43:26 +01:00
color.h initial commit: wip 2018-11-17 11:30:33 +01:00
config-verify.c tllist: use tllist from external git repository 2019-11-17 19:17:34 +01:00
config-verify.h config: conf_verify_dict() now assumes attr list is NULL-terminated 2019-01-13 11:37:05 +01:00
config.c config: font_from_name() no longer accepts a tllist 2019-12-01 19:29:36 +01:00
config.h fcft: use fcft instead of local copy of font.{c,h} 2019-12-01 16:00:15 +01: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: redirect *both* stdout and stderr to /dev/null 2019-11-27 21:20:41 +01:00
LICENSE license: MIT 2019-01-02 11:24:28 +01:00
log.c log: colorize console output only when stdout is a tty 2019-01-26 15:14:45 +01:00
log.h log: LOG_ERRNO_P(), like LOG_ERRNO(), except user provides errno value 2018-12-31 13:18:22 +01:00
main.c meson: fix version generation from git 2019-10-19 21:47:21 +02:00
meson.build meson/PKGBUILD: bump version to 1.3.1 2020-01-15 14:19:42 +01:00
meson_options.txt meson: initial support for building plugins as shared libraries 2019-05-01 18:21:35 +02:00
module.c particle: remove cairo context from begin_expose() 2019-09-22 00:55:06 +02:00
module.h particle: remove cairo context from begin_expose() 2019-09-22 00:55:06 +02:00
particle.c particle: add missing argument to debug log 2019-09-23 18:34:23 +02:00
particle.h fcft: use fcft instead of local copy of font.{c,h} 2019-12-01 16:00:15 +01:00
PKGBUILD meson/PKGBUILD: bump version to 1.3.1 2020-01-15 14:19:42 +01:00
PKGBUILD.wayland-only meson/PKGBUILD: bump version to 1.3.1 2020-01-15 14:19:42 +01:00
plugin.c tllist: use tllist from external git repository 2019-11-17 19:17:34 +01:00
plugin.h plugins: export a const function pointer interface struct 2019-01-26 18:32:04 +01:00
README.md README: specify "yaml" markup for configuration example 2020-01-15 11:09:15 +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 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: add xcb_error(), a generic describe-an-x-error function 2019-01-15 20:44:21 +01:00
yambar.desktop desktop: add Desktop Entry file 2019-09-29 20:58:15 +02:00
yml.c yml: destroy 'current' yaml event before erroring out 2020-01-15 11:06:54 +01: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

Introduction

screenshot

yambar is a light-weight and configurable status panel (bar, for short) for X and Wayland.

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. These are things like a different background, or an graphical underline.

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

Three, build it:

ninja

Optionally, install it:

ninja install