summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ram-widget/ram-widget.lua78
1 files changed, 37 insertions, 41 deletions
diff --git a/ram-widget/ram-widget.lua b/ram-widget/ram-widget.lua
index 51e2c5a..f59d79a 100644
--- a/ram-widget/ram-widget.lua
+++ b/ram-widget/ram-widget.lua
@@ -2,6 +2,7 @@ local awful = require("awful")
local watch = require("awful.widget.watch")
local wibox = require("wibox")
+--- Main ram widget shown on wibar
local ramgraph_widget = wibox.widget {
border_width = 0,
colors = {
@@ -12,20 +13,10 @@ local ramgraph_widget = wibox.widget {
widget = wibox.widget.piechart
}
-local total, used, free, shared, buff_cache, available
-
-watch('bash -c "free | grep Mem"', 1,
- function(widget, stdout, stderr, exitreason, exitcode)
- total, used, free, shared, buff_cache, available = stdout:match('(%d+)%s*(%d+)%s*(%d+)%s*(%d+)%s*(%d+)%s*(%d+)')
-
- widget.data = {used, total-used}
- end,
- ramgraph_widget
-)
-
+--- Widget which is shown when user clicks on the ram widget
local w = wibox {
height = 200,
- width = 350,
+ width = 400,
ontop = true,
screen = mouse.screen,
expand = true,
@@ -34,50 +25,55 @@ local w = wibox {
}
w:setup {
- {
- border_width = 0,
- colors = {
- '#74aeab',
- '#6eaaa7',
- '#5ea19d',
- '#55918e',
- '#4b817e',
- },
- display_labels = false,
- forced_width = 25,
- id = 'pie',
- widget = wibox.widget.piechart
- },
- {
- text = 'Hello',
- widget = wibox.widget.textbox
+ border_width = 0,
+ colors = {
+-- '#74aeab',
+-- '#6eaaa7',
+ '#5ea19d',
+ '#55918e',
+ '#4b817e',
},
- id = 'popup',
- layout = wibox.layout.stack
+ display_labels = false,
+ forced_width = 25,
+ id = 'pie',
+ widget = wibox.widget.piechart
}
+local total, used, free, shared, buff_cache, available
+
local function getPercentage(value)
return math.floor(value / total * 100 + 0.5) .. '%'
end
+watch('bash -c "free | grep Mem"', 1,
+ function(widget, stdout, stderr, exitreason, exitcode)
+ total, used, free, shared, buff_cache, available = stdout:match('(%d+)%s*(%d+)%s*(%d+)%s*(%d+)%s*(%d+)%s*(%d+)')
+ widget.data = { used, total-used }
+
+ if w.visible then
+ w.pie.data_list = {
+ {'used ' .. getPercentage(used), used},
+ {'free ' .. getPercentage(free), free},
+ {'buff_cache ' .. getPercentage(buff_cache), buff_cache}
+ }
+ end
+ end,
+ ramgraph_widget
+)
+
ramgraph_widget:buttons(
awful.util.table.join(
awful.button({}, 1, function()
awful.placement.top_right(w, { margins = {top = 25, right = 10}})
- w.popup.pie.data_list = {
+ w.pie.data_list = {
{'used ' .. getPercentage(used), used},
{'free ' .. getPercentage(free), free},
--- {'shared ' .. getPercentage(shared), shared},
- {'buff_cache ' .. getPercentage(buff_cache), buff_cache},
--- {'available ' .. getPercentage(available), available}
+ {'buff_cache ' .. getPercentage(buff_cache), buff_cache}
}
- w.popup.pie.display_labels = true
- w.visible = true
- end),
- awful.button({}, 3, function()
- w.visible = false;
+ w.pie.display_labels = true
+ w.visible = not w.visible
end)
)
)
-return ramgraph_widget
+return ramgraph_widget \ No newline at end of file