bread/examples/modules/low-battery-warning.lua
Breadway c47d50d16e
All checks were successful
Mirror to GitHub / mirror (push) Successful in 2s
Build and publish package / package (push) Successful in 2m4s
Add ready-to-use example modules
examples/modules/ ships complete, drop-in bread modules for common desktop
automations (low-battery warning, pause-media-on-headphone-unplug,
dock-monitors) plus a README on installing them. Complements Examples.md,
which teaches the porting patterns.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 17:06:44 +08:00

29 lines
890 B
Lua

-- low-battery-warning — notify once when the battery runs low.
--
-- Drop-in: copy into ~/.config/bread/modules/ (auto-discovered; no init.lua
-- edit needed). Zero configuration.
local M = bread.module({ name = "low-battery-warning", version = "1.0.0" })
-- Latch so we warn once per low-battery episode, not on every poll.
local warned = false
function M.on_load()
bread.on("bread.power.battery.low", function(event)
if warned then return end
warned = true
local pct = event.data.battery_percent or "?"
bread.notify("Battery low (" .. pct .. "%). Plug in soon.", {
urgency = "critical",
title = "Battery",
timeout = 10000,
})
end)
-- Reset once back on AC so the next low episode warns again.
bread.on("bread.power.ac.connected", function()
warned = false
end)
end
return M