yambar/README.md

4.5 KiB

F00bar

pipeline status

Index

  1. Introduction
  2. Modules
    1. Alsa
    2. backlight
    3. battery
    4. clock
    5. i3
    6. label
    7. mpd
    8. network
    9. removables
    10. xkb
    11. xwindow
  3. Particles
    1. empty
    2. list
    3. map
    4. progress 1.bar
    5. ramp
    6. string
  4. Decorations
    1. background
    2. stack
    3. underline
  5. Configuration
    1. Overview
    2. Types
    3. Bar

Introduction

screenshot

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

It has a number of modules that provides 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.

Modules

Alsa

Backlight

Battery

Clock

I3

Label

Mpd

Network

Removables

Xkb

Xwindow

Particles

Empty

List

Map

Progress-bar

Ramp

String

Decorations

Background

Stack

Underline

Configuration

Overview

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

bar:
  height: 26
  location: top
  background: 000000ff

Types

There are a couple types used that are specific to f00bar.

  • font: this is a string in fontconfig format. Example of valid values:
    • Font Awesome 5 Brands
    • Font Awesome 5 Free:style=solid
    • Dina:pixelsize=10:slant=italic
    • Dina:pixelsize=10:weight=bold
  • color: an rgba hexstring; RRGGBBAA. Examples:
    • ffffffff: white, no transparancy
    • 000000ff: black, no transparancy
    • 00ff00ff: green, no transparancy
    • ff000099: red, semi-transparent

Bar

  • height (int, required): the height of the bar, in pixels. Note that the bar will always occupy the entire width of the monitor.
  • location (enum, required): one of top or bottom. Should be self-explanatory.
  • background (color, required): background color, in rgba. Thus, in the example above, the background is set to black
  • left-spacing (int): space, in pixels, added before each module
  • right-spacing (int): space, in pixels, added after each module
  • spacing (int): short-hand for setting both left-spacing and right-spacing
  • left-margin (int): left-side margin, in pixels
  • right-margin (int): right-side margin, in pixels
  • margin (int): short-hand for setting both left-margin and right-margin
  • border (dictionary): configures a border around the status bar
  • font (font): default font to use
  • foreground (color): default foreground (text) color to use
  • left (list): left-aligned modules
  • center (list): center-aligned modules
  • right (list): right-aligned modules

The border dictionary has the following attributes:

  • width (int, required): with, in pixels, of the border
  • color (color, required): the color of the border