52 lines
1.7 KiB
Markdown
52 lines
1.7 KiB
Markdown
# Event Handler
|
|
My custom event handler for battery related things. Here's a brief rundown of
|
|
all the features:
|
|
|
|
When the percentage gets below a specified percentage it will blink the
|
|
specified led at any rate defined by the config file. Example:
|
|

|
|
|
|
If the system is plugged in and a wayland session is running then the event
|
|
handler will place an idle inhibitor on the session to keep the computer from
|
|
going to sleep. The inhibitor is removed when the system is unplugged.
|
|
|
|
> [!WARNING]
|
|
> event-handler relies on [acpid](https://wiki.archlinux.org/title/Acpid) to
|
|
> monitor battery events ensure you have it installed and running before using
|
|
> event-handler
|
|
|
|
## Configuring
|
|
I built event-handler to be used as a service independent of my current user
|
|
and such event-handler does not read the configuration file from any default
|
|
path. Instead it's up to you to choose where it is and pass the file's full
|
|
path into event-handler like so:
|
|
```bash
|
|
eh -c ./config.toml
|
|
```
|
|
|
|
The config is completely optional, however you will most likely need to as the
|
|
default is setup for my framework 13 system running Void Linux. Below are the
|
|
defaults:
|
|
|
|
### Default Config
|
|
```toml
|
|
[battery]
|
|
status_path = "/sys/class/power_supply/BAT1"
|
|
power_source = "/sys/class/power_supply/ACAD/online"
|
|
|
|
[led]
|
|
brightness_path = "/sys/class/leds/input0::capslock/brightness"
|
|
|
|
[led.blink]
|
|
trigger_level = 15
|
|
timing_formula = "1.7 + 18.5 * exp(-0.29 * p)" # p is the percentage of the battery
|
|
|
|
[acpi_daemon]
|
|
socket_path = "/run/acpid.socket"
|
|
```
|
|
|
|
> [!NOTE]
|
|
> The default formula may or may not work above 15 percent due to led
|
|
> shenanigans. If you wish to craft your own formula all relevant notation may
|
|
> be found in [this repo](https://github.com/codeplea/tinyexpr).
|