Modular status panel for X11 and Wayland, inspired by https://github.com/jaagr/polybar
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Go to file
Daniel Eklöf b6da4492a9
meson/PKGBUILD: bump version to 1.3.0
3 years ago
bar bar/wayland: don't use wl_display_dispatch() 3 years ago
completions Rename project: f00bar -> yambar 4 years ago
decorations meson: add 'fcft' dependency to decorations and modules 4 years ago
doc meson: fix version generation from git 4 years ago
external wlr-protocols: bump 4 years ago
modules meson: add 'fcft' dependency to decorations and modules 4 years ago
particles particle/string: remove useless debug log 4 years ago
test Rename project: f00bar -> yambar 4 years ago
.build.yml Rename project: f00bar -> yambar 4 years ago
.gitignore gitignore: subprojects directory 3 years ago
.gitlab-ci.yml ci: install git and close fcft+tllist subprojects 3 years ago
.gitmodules fcft/tllist: remove git submodules 3 years ago
LICENSE license: MIT 4 years ago
PKGBUILD meson/PKGBUILD: bump version to 1.3.0 3 years ago
PKGBUILD.wayland-only PKGBUILD: require fcft >= 0.2.0 4 years ago
README.md README: specify "yaml" markup for configuration example 3 years ago
color.h initial commit: wip 5 years ago
config-verify.c tllist: use tllist from external git repository 4 years ago
config-verify.h config: conf_verify_dict() now assumes attr list is NULL-terminated 4 years ago
config.c config: font_from_name() no longer accepts a tllist 4 years ago
config.h fcft: use fcft instead of local copy of font.{c,h} 4 years ago
decoration.h cairo: replace cairo with pixman in decos, particles and modules 4 years ago
generate-version.sh generate-version: redirect *both* stdout and stderr to /dev/null 4 years ago
log.c log: colorize console output only when stdout is a tty 4 years ago
log.h log: LOG_ERRNO_P(), like LOG_ERRNO(), except user provides errno value 4 years ago
main.c meson: fix version generation from git 4 years ago
meson.build meson/PKGBUILD: bump version to 1.3.0 3 years ago
meson_options.txt meson: initial support for building plugins as shared libraries 4 years ago
module.c particle: remove cairo context from begin_expose() 4 years ago
module.h particle: remove cairo context from begin_expose() 4 years ago
particle.c particle: add missing argument to debug log 4 years ago
particle.h fcft: use fcft instead of local copy of font.{c,h} 4 years ago
plugin.c tllist: use tllist from external git repository 4 years ago
plugin.h plugins: export a const function pointer interface struct 4 years ago
screenshot.png screenshot: update 4 years ago
stride.h font: initial port from cairo scaled fonts to raw freetype + pixman 4 years ago
tag.c tag: add support for "hex" and "oct" format modifiers 4 years ago
tag.h Reduce header intra-dependencies 4 years ago
xcb.c misc: xcb_connect() always returns a non-NULL pointer 4 years ago
xcb.h xcb: add xcb_error(), a generic describe-an-x-error function 4 years ago
yambar.desktop desktop: add Desktop Entry file 4 years ago
yml.c yml: destroy 'current' yaml event before erroring out 3 years ago
yml.h yml: add line/column info to every node 4 years ago

README.md

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