Skip to content
Luca CPZ edited this page May 7, 2021 · 74 revisions

Usage

Read here.

Description

Shows 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 fully charged, low, or critical.

local mybattery = lain.widget.bat()

Input table

Variable Meaning Type Default
timeout Refresh timeout (in seconds) integer 30
pspath Power supply directory path string "/sys/class/power_supply/"
battery Single battery id string autodetected
batteries Multiple batteries id table table of strings autodetected
ac AC string autodetected
notify Show notification popups string "on"
full_notify Show a notification popup when the battery's fully charged string inherited value from notify
n_perc Percentages assumed for critical and low battery levels table of integers {5, 15}
settings User settings function empty function
widget Widget to render function wibox.widget.textbox

The widget will try to autodetect battery, batteries and ac. If something goes wrong, you will have to define them manually. In that case, 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*"}, where BAT* is the identifier of your battery in pspath (do not use it as a wildcard). Of course, if you have multiple batteries, you need to use the latter option.

To disable notifications, set notify to "off".

If you define pspath, be sure to not forget the final slash (/).

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

  • status, general 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], i-th battery charge percentage (like above);
  • time, time remaining until charge if charging, until discharge if discharging (HH:MM string or "N/A");
  • watt, battery watts (float with 2 decimals);
  • capacity, remaining battery capacity in percent;
  • n_capacity[i], i-th battery remaining capacity (like above).

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

  • bat_notification_charged_preset (used if battery is fully charged and connected to AC)
  • 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 definitions:

bat_notification_charged_preset = {
        title   = "Battery full",
        text    = "You can unplug the cable",
        timeout = 15,
        fg      = "#202020",
        bg      = "#CDCDCD"
    }
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.

Note

Alternatively, you can try the upower recipe.

Clone this wiki locally