eww-config/README.md

91 lines
2.2 KiB
Markdown
Raw Normal View History

2024-03-30 14:30:52 +00:00
# `eww.yuck` and friends
My personal eww config.
Install by linking or cloning to ~/.config/eww
## `track_anything.sh`
This config includes a helper bash source which may be used
to setup trackers of values. It requires an on_event emitter
to already exist and should have one of the three output
2024-03-30 20:50:59 +00:00
formats: integer, boolean, and string. Additionally, you will
need to provide a `poll` function which exposes the information
you care about.
2024-03-30 20:50:59 +00:00
Finally, you will need to source the main library file. When
the library is in the same folder (or nearby) as the library,
this may be done as:
2024-03-30 20:50:59 +00:00
```bash
. "$(dirname "$0")/track_anything.sh"
```
2024-03-30 20:50:59 +00:00
### `poll`
Your provided poll function must return a valid output as its first
line and may provide log data on subsequent lines which will be
emitted at the info level (stderr, single -v).
A simple example is the pulseaudio mute state poller:
```bash
poll() {
pamixer --get-mute
}
```
### `Configuration`
Options:
- rate_limit
- seconds to wait between running poll
(default: `1`)
- poll_interval
- seconds to wait for an update before forcing a poll
(default: `60`)
- NOTE: must satisfy poll_interval >= rate_limit
- filter: an arbitrary command to filter the total output of the poller in a loop
(default: `uniq`)
- NOTE: all arguments are collected and executed with eval.
- Example: `cat` will allow duplicates. `uniq` will filter them.
Event Emitters:
- `on_volume`
- emits on changes to pulseaudio sinks
- `on_sway`
- emits on changes to sway windows or workspaces
- `on`
- uses your own function to trigger an event
which should be passed as the only argument to `on`
- NOTE: the function in question _must_ emit events
as newlines with no text. multiple events may be
emitted in general safety if `rate_limit` is > 0
Outputs:
- `output_integer`
- output a decimal integer
- `output_boolean`
- output a boolean (true, false)
- `output_string`
- output an arbitrary string, validated by a regex
- args:
- a validation regex string as the first argument
(default: `.*`)
- `output_json`
- output an arbitrary json value, validated by jq
- args:
- a validation jq query which must not fail or return null
2024-03-30 20:50:59 +00:00
(default: `.`)