75 lines
2.0 KiB
Lua
75 lines
2.0 KiB
Lua
---------------------------------
|
|
-- This is the RAM Info widget --
|
|
---------------------------------
|
|
|
|
-- Awesome Libs
|
|
local awful = require("awful")
|
|
local dpi = require("beautiful").xresources.apply_dpi
|
|
local gears = require("gears")
|
|
local watch = awful.widget.watch
|
|
local wibox = require("wibox")
|
|
|
|
local capi = {
|
|
awesome = awesome,
|
|
}
|
|
|
|
local icon_dir = gears.filesystem.get_configuration_dir() .. "src/assets/icons/cpu/"
|
|
|
|
return function()
|
|
local ram_widget = wibox.widget {
|
|
{
|
|
{
|
|
{
|
|
{
|
|
{
|
|
id = "icon",
|
|
widget = wibox.widget.imagebox,
|
|
valign = "center",
|
|
halign = "center",
|
|
image = gears.color.recolor_image(icon_dir .. "ram.svg", Theme_config.ram_info.fg),
|
|
resize = false
|
|
},
|
|
id = "icon_layout",
|
|
widget = wibox.container.place
|
|
},
|
|
top = dpi(2),
|
|
widget = wibox.container.margin,
|
|
id = "icon_margin"
|
|
},
|
|
spacing = dpi(10),
|
|
{
|
|
id = "label",
|
|
align = "center",
|
|
valign = "center",
|
|
widget = wibox.widget.textbox
|
|
},
|
|
id = "ram_layout",
|
|
layout = wibox.layout.fixed.horizontal
|
|
},
|
|
id = "container",
|
|
left = dpi(8),
|
|
right = dpi(8),
|
|
widget = wibox.container.margin
|
|
},
|
|
bg = Theme_config.ram_info.bg,
|
|
fg = Theme_config.ram_info.fg,
|
|
shape = function(cr, width, height)
|
|
gears.shape.rounded_rect(cr, width, height, dpi(6))
|
|
end,
|
|
widget = wibox.container.background
|
|
}
|
|
|
|
Hover_signal(ram_widget)
|
|
|
|
capi.awesome.connect_signal(
|
|
"update::ram_widget",
|
|
function(MemTotal, MemFree, MemAvailable)
|
|
local ram_string = tostring(string.format("%.1f", ((MemTotal - MemAvailable) / 1024 / 1024)) ..
|
|
"/" .. string.format("%.1f", (MemTotal / 1024 / 1024)) .. "GB"):gsub(",", ".")
|
|
ram_widget.container.ram_layout.label.text = ram_string
|
|
end
|
|
)
|
|
|
|
return ram_widget
|
|
end
|