1
0
awesomewm-config/external/memory.lua
2023-06-04 15:59:49 +03:00

40 lines
889 B
Lua

local memory = {}
local DEFAULT_SIGNAL = "memory::value"
local mem = [[
while IFS=':k ' read -r mem1 mem2 _; do
case "$mem1" in
MemTotal)
memt="$(( mem2 / 1024 ))";;
MemAvailable)
memu="$(( memt - mem2 / 1024))";;
esac;
done < /proc/meminfo;
printf "%d %d" "$memu" "$memt"; ]]
--- callback: function(total, available)
function memory.get(callback)
awful.spawn.easy_async_with_shell(mem, function (out)
local val = gears.string.split(out, " ")
callback(tonumber(val[1]), tonumber(val[2]))
end)
end
function memory.emit(name)
memory.get(function(...)
awesome.emit_signal(name or DEFAULT_SIGNAL, ...)
end)
end
function memory.register_signal(signal_name, update_interval)
gears.timer {
timeout = update_interval or 5,
call_now = true,
autostart = true,
callback = function() memory.emit(signal_name) end
}
end
return memory