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 c55153bad8
readme installation: mention -Dbackend-*=disabled|enabled
4 weeks ago
bar module/river: meson: explicitly add wl_proto_src + wl_proto_headers to sources 4 weeks ago
completions log: make more logging options configurable 8 months ago
decorations meson: add 'fcft' dependency to decorations and modules 10 months ago
doc doc: yambar-tags: document the :hex and :oct suffixes 4 weeks ago
examples examples: my current laptop configuration 9 months ago
external moduel/river: wip: new module; 'tags' status on Wayland compositor 'river' 3 months ago
modules module/clock: silence compiler warning: ensure timeout_ms is initialized 4 weeks ago
particles fcft: fcft_glyph_for_wc() has been renamed to fcft_glyph_rasterize() 6 months ago
test Rename project: f00bar -> yambar 1 year ago
.build.yml Rename project: f00bar -> yambar 1 year ago
.gitignore gitignore: subprojects directory 9 months ago
.gitlab-ci.yml ci: log toolchain version information 3 months ago
.gitmodules fcft/tllist: remove git submodules 9 months ago
CHANGELOG.md changelog: add issue link for alsa: volume as percentage 4 weeks ago
LICENSE license: MIT 1 year ago
PKGBUILD meson/pkgbuild: bump version to 1.5.0 1 month ago
PKGBUILD.wayland-only meson/pkgbuild: bump version to 1.5.0 1 month ago
README.md readme installation: mention -Dbackend-*=disabled|enabled 4 weeks ago
color.h initial commit: wip 1 year ago
config-verify.c config-verify: add conf_verify_list() 4 months ago
config-verify.h config-verify: add conf_verify_list() 4 months ago
config.c fcft: adjust to fcft-2.0 API changes 6 months ago
config.h fcft: adjust to fcft-2.0 API changes 6 months ago
decoration.h cairo: replace cairo with pixman in decos, particles and modules 1 year ago
generate-version.sh generate-version: check for .git directory in *src* dir 7 months ago
log.c log: make syslog facility and level configurable, always log filename+lineno 8 months ago
log.h log: make syslog facility and level configurable, always log filename+lineno 8 months ago
main.c main: call setlocale() *after* loading fonts 5 months ago
meson.build module/alsa+backlight: round() percentage values 4 weeks ago
meson_options.txt meson: initial support for building plugins as shared libraries 1 year ago
module.c particle: remove cairo context from begin_expose() 1 year ago
module.h modules: move 'content' and 'anchors' to MODULE_COMMON_ATTRS 9 months ago
particle.c fcft: adjust to fcft-2.0 API changes 6 months ago
particle.h fcft: adjust to fcft-2.0 API changes 6 months ago
plugin.c moduel/river: wip: new module; 'tags' status on Wayland compositor 'river' 3 months ago
plugin.h plugins: export a const function pointer interface struct 1 year ago
screenshot.png screenshot: update 1 year ago
stride.h font: initial port from cairo scaled fonts to raw freetype + pixman 1 year ago
tag.c tag: add support for "hex" and "oct" format modifiers 1 year ago
tag.h Reduce header intra-dependencies 1 year ago
xcb.c misc: xcb_connect() always returns a non-NULL pointer 1 year ago
xcb.h xcb: extern declare cached XCB atoms in header file 4 months ago
yambar.desktop desktop: add Desktop Entry file 1 year ago
yml.c yml: don’t overwrite errors from yml_parser_parse() 4 weeks ago
yml.h yml: add line/column info to every node 1 year ago

README.md

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