Skip to content
Luke Bonham edited this page Nov 19, 2016 · 74 revisions

Shows in a textbox the remaining time and percentage capacity of your laptop battery, as well as the current wattage. Multiple batteries are supported.

Displays a notification when battery is low or critical.

mybattery = lain.widgets.bat()

input table

Variable Meaning Type Default
timeout Refresh timeout seconds int 30
battery Single battery id string "BAT0"
batteries Multiple batteries id table table of strings {"BAT0"}
ac AC string "AC0"
notify Show notification popups string "on"
settings User settings function empty function

You only have to define one between battery and batteries.

If you have one battery, you can either use args.battery = "BAT*" or args.batteries = {"BAT*"}. Of course, if you have multiple batteries, you need to use the latter option.

To disable warning notifications, set notify to "off".

settings can use the bat_now table, which contains the following strings:

  • status, first battery status ("N/A", "Discharging", "Charging", "Full");
  • n_status[i], i-th battery status (like above);
  • ac_status, AC-plug flag (0 if cable is unplugged, 1 if plugged, "N/A" otherwise);
  • perc, total charge percentage (integer between 0 and 100 or "N/A");
  • n_perc, i-th battery charge percentage (like above);
  • time, time remaining until charge if charging, until discharge if discharging (HH:SS string or "N/A");
  • watt, battery watts (float with 2 decimals).

and can modify the following two tables, which will be the preset for the naughty notifications:

  • bat_notification_low_preset(used if battery charge level <= 15)
  • bat_notification_critical_preset (used if battery charge level <= 5)

Check here for the list of variables they can contain.

Default definition:

bat_notification_low_preset = {
        title = "Battery low",
        text = "Plug the cable!",
        timeout = 15,
        fg = "#202020",
        bg = "#CDCDCD"
}
bat_notification_critical_preset = {
        title = "Battery exhausted",
        text = "Shutdown imminent",
        timeout = 15,
        fg = "#000000",
        bg = "#FFFFFF"
}

output table

Variable Meaning Type
widget The widget wibox.widget.textbox
update Update widget function

The update function can be used to refresh the widget before timeout expires.

Notes

  • Another common identifier for ac is ACAD.
  • If your widget is always on "N/A" with default settings, and you have a single battery, then BAT0 is not your battery file. Locate the right one in /sys/class/power_supply/ and set battery properly. For instance, with BAT1:
batwidget = lain.widgets.bat({
    battery = "BAT1",
    -- [...]
})
Clone this wiki locally