diff --git a/README.md b/README.md index 123a205..9130215 100644 --- a/README.md +++ b/README.md @@ -7,32 +7,7 @@ 1. [Introduction](#introduction) 1. [Configuration](#configuration) - 1. [Overview](#overview) - 1. [Types](#types) - 1. [Bar](#bar) 1. [Modules](#modules) - 1. [Alsa](#alsa) - 1. [backlight](#backlight) - 1. [battery](#battery) - 1. [clock](#clock) - 1. [i3](#i3) - 1. [label](#label) - 1. [mpd](#mpd) - 1. [network](#network) - 1. [removables](#removables) - 1. [xkb](#xkb) - 1. [xwindow](#xwindow) -1. [Particles](#particles) - 1. [empty](#empty) - 1. [list](#list) - 1. [map](#map) - 1. [progress 1.bar](#progress_bar) - 1. [ramp](#ramp) - 1. [string](#string) -1. [Decorations](#decorations) - 1. [background](#background) - 1. [stack](#stack) - 1. [underline](#underline) ## Introduction @@ -66,8 +41,6 @@ using _particles_ and _decorations_. **How** is configured by you. ## Configuration -### Overview - F00bar is configured using YAML, in `~/.config/f00bar/config.yml`. It must define a top-level dictionary named **bar**: @@ -76,173 +49,30 @@ must define a top-level dictionary named **bar**: location: top background: 000000ff + right: + - clock: + content: + - string: {text: , font: *awesome} + - string: {text: "{date}", right-margin: 5} + - string: {text: , font: *awesome} + - string: {text: "{time}"} -### 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 - -| Name | Type | Req. | Description -|---------------|--------|------|------------ -| height | int | yes | The height of the bar, in pixels -| location | enum | yes | One of `top` or `bottom` -| background | color | yes | Background color -| monitor | string | no | Monitor to place the bar. If not specified, the primary monitor will be used. -| left-spacing | int | no | Space, in pixels, added **before** each module -| right-spacing | int | no | Space, in pixels, added **after** each module -| spacing | int | no | Short-hand for setting both `left-spacing` and `right-spacing` -| left-margin | int | no | Left-side margin, in pixels -| right-margin | int | no | Right-side margin, in pixels -| margin | int | no | Short-hand for setting both `left-margin` and `right-margin` -| border | dict | no | Configures a border around the status bar -| border.width | int | no | Width, in pixels, of the border -| border.color | color | no | The color of the border -| border.margin | int | no | left/rigth/top/bottom margins, from screen edge to bar. _Wayland only_ -| border.left-margin | int | no | left margin from screen edge to bar. Overrides `border.margin`. _Wayland only_ -| border.right-margin | int | no | right margin from screen edge to bar. Overrides `border.margin`. _Wayland only_ -| border.top-margin | int | no | top margin from screen edge to bar. Overrides `border.margin`. _Wayland only_ -| border.bottom-margin | int | no | bottom margin from screen edge to bar. Overrides `border.margin`. _Wayland only_ -| font | font | no | Default font to use in modules and particles -| foreground | color | no | Default foreground (text) color to use -| left | list | no | Left-aligned modules -| center | list | no | Center-aligned modules -| right | list | no | Right-aligned modules - -The value of each item in the `left`, `center` and `right` lists is a _module_. +For details, see the man pages (**f00bar**(5) is a good start). ## Modules -- [alsa](#alsa) -- [backlight](#backlight) -- [battery](#battery) -- [clock](#clock) -- [i3](#i3) -- [label](#label) -- [mpd](#mpd) -- [network](#network) -- [removables](#removables) -- [xkb](#xkb) -- [xwindow](#xwindow) - - -### Generic Configuration - -**All** modules support the following attributes: - -| Name | Type | Description -|---------|----------|------------ -| content | particle | A particle describing how the module's information is to be rendered -| anchors | dict | Free-to-use dictionary, where you can put yaml anchor definitions - - -### Tags - -Modules expose information through _tags_. Each tag has _name_, _type_ -and a _value_. The name and type is fixed, while the value will -typically change over time. - -The tags are rendered by _particles_. Each particle type has it's own -way of representing tag values. The simplest one is the `string` -particle, which renders a text representation of the tag value. - - string: - text: "The current volume is {volume}" - - -The following tag types exist: - -| Type | Description -|--------|------------ -| string | Value is a string. Rendered as-is by the `string` particle. -| int | Value is an integer. Rendered in base 10 by the `string` particle. -| bool | Value is true or false. Rendered as "true" or "false" by the `string` particle. -| float | Value is a float. Rendered in base 10, with two decimal digits by the `string` particle. -| range | Value is an integer, with a minimum and maximum value. By default, `string` renders the value. The `:min` or `:max` suffixes may be added to instead render the min/max values (`"{tag_name:min}"). -| realtime | Value is an integer that changes in a predictable manner (in "realtime"). This allows the particle to update itself periodically. It could for example be used to represent a playing song's position. Only supported by the `progress-bar` particle. However, the `string` particle does recognize the `:unit` suffix. This will be translated to "s" for a tag with "seconds" resolution, or "ms" for one with "milliseconds" resolution. - - -### Alsa - -Monitors an alsa soundcard for volume and mute/unmute changes. - -#### Tags - -| Name | Type | Description -|--------|-------|------------ -| volume | range | Volume level, with min and max as start and end range values -| muted | bool | True if muted - - -#### Configuration - -| Name | Type | Req. | Description -|---------------|--------|------|------------ -| card | string | yes | The soundcard name. _Default_ might work. -| mixer | String | yes | Mixer channel to watch. _Master_ might work. - - -#### Example - - alsa: - card: hw:PCH - mixer: Master - content: {string: {text: "{volume}"}} - - -### Backlight -### Battery -### Clock -### I3 -### Label -### Mpd -### Network -### Removables -### Xkb -### Xwindow - - -## Particles - -- [empty](#empty) -- [list](#list) -- [map](#map) -- [progress-bar](#progress_bar) -- [ramp](#ramp) -- [string](#string) - - -### Empty -### List -### Map -### Progress-bar -### Ramp -### String - - -## Decorations - -- [background](#background) -- [stack](#stack) -- [underline](#underline) - - -### Background -### Stack -### Underline - +Available modules: +* alsa +* backlight +* battery +* clock +* i3 (and Sway) +* label +* mpd +* network +* removables +* xkb (_XCB backend only_) +* xwindow (_XCB backend only_)