We subscribe to Sway's 'input' events, and use these to expose input devices' active XKB layout. The module is configured by specifying a list of 'identifiers'; these are the input devices (keyboards, typically), that we'll be monitoring. All other input devices are ignored. 'content' is a template, and the module will instantiate a dynlist with a 'content' for each *existing* input found in the 'identifiers' list. We also monitor for device 'added' and 'removed' events, and update our internal list of existing inputs. This means the user can configure a set of identifiers, and only those that are actually present will be displayed. If a device that is listed in the 'identifiers' list is added, it will be displayed. If it is removed, it will no longer be displayed. |
||
---|---|---|
bar | ||
completions | ||
decorations | ||
doc | ||
external | ||
modules | ||
particles | ||
test | ||
.build.yml | ||
.gitignore | ||
.gitlab-ci.yml | ||
.gitmodules | ||
color.h | ||
config-verify.c | ||
config-verify.h | ||
config.c | ||
config.h | ||
decoration.h | ||
font.c | ||
font.h | ||
LICENSE | ||
log.c | ||
log.h | ||
main.c | ||
meson.build | ||
meson_options.txt | ||
module.c | ||
module.h | ||
particle.c | ||
particle.h | ||
PKGBUILD | ||
PKGBUILD.wayland-only | ||
plugin.c | ||
plugin.h | ||
README.md | ||
screenshot.png | ||
tag.c | ||
tag.h | ||
tllist.h | ||
xcb.c | ||
xcb.h | ||
yml.c | ||
yml.h |
F00bar
Index
Introduction
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.
Configuration
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
right:
- clock:
content:
- 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).
Modules
Available modules:
- alsa
- backlight
- battery
- clock
- i3 (and Sway)
- label
- mpd
- network
- removables
- xkb (XCB backend only)
- xwindow (XCB backend only)