Modular status panel for X11 and Wayland, inspired by
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 85c06a427f Release 1.1.1 2 years ago
bar bar: repair border drawing (was using wrong height) 2 years ago
completions completions: zsh: teach it possible values for -b,--backend and -c,--config 3 years ago
decorations meson: add freetype dependency to decorations and modules 2 years ago
doc doc/f00bar-modules: document sway-xkb 2 years ago
external wlr-protocols: bump 2 years ago
modules module/removables: relaxed mountinfo matching criteria 2 years ago
particles particle/progress-bar: expand and replace on-click handler on click events only 2 years ago
test test: full-conf: add instances of all particles and decorations 3 years ago
.build.yml ci: add release, x11/wayland-only and shared-plugins builds 3 years ago
.gitignore initial commit: wip 3 years ago
.gitlab-ci.yml ci: install pixman+freetype+fontconfig instead of cairo 2 years ago
.gitmodules Pull in wlr-protocols instead of wlroots 3 years ago
LICENSE license: MIT 3 years ago
PKGBUILD Release 1.1.1 2 years ago
PKGBUILD.wayland-only Release 1.1.1 2 years ago README: remove badges (added directly to gitlab project instead) 2 years ago
color.h initial commit: wip 3 years ago
config-verify.c config: make border.width and border.color optional 3 years ago
config-verify.h config: conf_verify_dict() now assumes attr list is NULL-terminated 3 years ago
config.c cairo: replace cairo with pixman in decos, particles and modules 2 years ago
config.h cairo: replace cairo with pixman in decos, particles and modules 2 years ago
decoration.h cairo: replace cairo with pixman in decos, particles and modules 2 years ago
font.c font: don't try to do fontconfig fallback on a fallback font 2 years ago
font.h font: remove lock (all rendering happens in the main thread) 2 years ago
log.c log: colorize console output only when stdout is a tty 3 years ago
log.h log: LOG_ERRNO_P(), like LOG_ERRNO(), except user provides errno value 3 years ago
main.c main: add -b,--backend command line option 3 years ago Release 1.1.1 2 years ago
meson_options.txt meson: initial support for building plugins as shared libraries 3 years ago
module.c particle: remove cairo context from begin_expose() 2 years ago
module.h particle: remove cairo context from begin_expose() 2 years ago
particle.c particle: add missing argument to debug log 2 years ago
particle.h cairo: replace cairo with pixman in decos, particles and modules 2 years ago
plugin.c modules/sway-xkb: new module, uses sway 'input' events to expose kbd layout 2 years ago
plugin.h plugins: export a const function pointer interface struct 3 years ago
screenshot.png README: some text; let's see what this looks like 3 years ago
stride.h font: initial port from cairo scaled fonts to raw freetype + pixman 2 years ago
tag.c tag: add support for "hex" and "oct" format modifiers 3 years ago
tag.h Reduce header intra-dependencies 3 years ago
tllist.h tllist: cast away const in tll_{r,}foreach() 3 years ago
xcb.c misc: xcb_connect() always returns a non-NULL pointer 3 years ago
xcb.h xcb: add xcb_error(), a generic describe-an-x-error function 3 years ago
yml.c yml: handle root's node being NULL 3 years ago
yml.h yml: add line/column info to every node 3 years ago



  1. Introduction
  2. Configuration
  3. Modules



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


F00bar is configured using YAML, in ~/.config/f00bar/config.yml. It must define a top-level dictionary named bar:

  height: 26
  location: top
  background: 000000ff

    - clock:
          - string: {text: , font: *awesome}
          - string: {text: "{date}", right-margin: 5}
          - string: {text: , font: *awesome}
          - string: {text: "{time}"}

For details, see the man pages (f00bar(5) is a good start).


Available modules:

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