44 lines
1.4 KiB
Lua
44 lines
1.4 KiB
Lua
local io = io
|
|
local math = math
|
|
local tonumber = tonumber
|
|
local string = string
|
|
local naughty = require("naughty")
|
|
|
|
function batteryInfo()
|
|
for i=0,1 do
|
|
local dir = "/sys/class/power_supply/BAT" .. tostring(i) .. "/"
|
|
local f_status = io.popen("cat " .. dir .. "status 2>/dev/null")
|
|
local c_status = f_status:read()
|
|
f_status:close()
|
|
|
|
if c_status and c_status ~= "" then
|
|
local prefix = "energy"
|
|
local f_now = io.popen("cat " .. dir .. prefix .. "_now 2>/dev/null")
|
|
local c_now_str = f_now:read()
|
|
f_now:close()
|
|
|
|
if not c_now_str or c_now_str == "" then
|
|
prefix = "charge"
|
|
local f_now = io.popen("cat " .. dir .. prefix .. "_now")
|
|
c_now_str = f_now:read()
|
|
f_now:close()
|
|
end
|
|
|
|
local f_full = io.popen("cat " .. dir .. prefix .. "_full")
|
|
local c_full_str = f_full:read()
|
|
f_full:close()
|
|
|
|
local c_now = tonumber(c_now_str)
|
|
local c_full = tonumber(c_full_str)
|
|
|
|
local charging = (c_status == "Charging" or c_status == "Full")
|
|
|
|
if c_now ~= nil and c_full ~= nil then
|
|
local percent = math.floor((c_now/c_full) * 100)
|
|
return percent, charging
|
|
end
|
|
end
|
|
end
|
|
return nil, charging
|
|
end
|