diff --git a/simple/widgets/system_resources.lua b/simple/widgets/system_resources.lua index b20592c..03c2eeb 100644 --- a/simple/widgets/system_resources.lua +++ b/simple/widgets/system_resources.lua @@ -34,6 +34,15 @@ local bars = wibox.widget { layout = wibox.layout.flex.horizontal } +function fileExists(name) + local f = io.open(name, "r") + if f ~= nil then + io.close(f) + return true + end + return false +end + function readCommand(command) local handle = io.popen(command, "r") local r = handle:read("*a") @@ -151,8 +160,13 @@ function getBatteryCapacity() local capacity = 0 for b in getBatteries() do if b:sub(1,3) ~= 'hid' and readCommand("cat /sys/class/power_supply/" .. b .. "/type"):match("Battery") then - charge = charge + readCommand("cat /sys/class/power_supply/" .. b .. "/energy_now") - capacity = capacity + readCommand("cat /sys/class/power_supply/" .. b .. "/energy_full") + if fileExists("/sys/class/power_supply/" .. b .. "/energy_now") then + charge = charge + readCommand("cat /sys/class/power_supply/" .. b .. "/energy_now") + capacity = capacity + readCommand("cat /sys/class/power_supply/" .. b .. "/energy_full") + else + charge = charge + readCommand("cat /sys/class/power_supply/" .. b .. "/charge_now") + capacity = capacity + readCommand("cat /sys/class/power_supply/" .. b .. "/charge_full") + end end end return charge / capacity