summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--pacman-widget/pacman.lua46
1 files changed, 24 insertions, 22 deletions
diff --git a/pacman-widget/pacman.lua b/pacman-widget/pacman.lua
index a547f6a..3f6a930 100644
--- a/pacman-widget/pacman.lua
+++ b/pacman-widget/pacman.lua
@@ -8,7 +8,7 @@ local DIR = os.getenv("HOME") .. "/.config/awesome/pacman-widget/"
local ICON_DIR = DIR .. "icons/"
local pacman_widget = {}
-local config = {}
+local config, timer = {}, {}
config.interval = 600
config.popup_bg_color = "#222222"
@@ -38,19 +38,19 @@ local function worker(user_args)
},
{
id = "txt",
- font = font,
+ font = args.font,
widget = wibox.widget.textbox
},
spacing = 5,
layout = wibox.layout.fixed.horizontal,
- }
- function pacman_widget:set(new_value)
+ }
+ function pacman_widget.set(new_value)
pacman_widget:get_children_by_id("txt")[1]:set_text(new_value)
pacman_widget:get_children_by_id("icon")[1]:set_image(
ICON_DIR .. (tonumber(new_value) > 0 and "pacman" or "pacman-full") .. ".svg"
)
end
-
+
local rows, ptr = wibox.layout.fixed.vertical(), 0
rows:connect_signal("button::press", function(_,_,_,button)
if button == 4 then
@@ -65,7 +65,7 @@ local function worker(user_args)
end
end
end)
-
+
local popup = awful.popup {
border_width = _config.popup_border_width,
border_color = _config.popup_border_color,
@@ -83,7 +83,7 @@ local function worker(user_args)
popup.visible = false
else
popup.visible = true
- popup:move_next_to(mouse.current_widget_geometry)
+ popup:move_next_to(_G.mouse.current_widget_geometry)
end
end)
)
@@ -106,13 +106,13 @@ local function worker(user_args)
if not busy then
c:set_opacity(1)
c:emit_signal("widget::redraw_needed")
- local wb = mouse.current_wibox
+ local wb = _G.mouse.current_wibox
old_cursor, old_wibox = wb.cursor, wb
wb.cursor = "hand2"
end
end)
upgr_btn:connect_signal("mouse::leave", function(c)
- if not busy then
+ if not busy then
c:set_opacity(upgr_opacity)
c:emit_signal("widget::redraw_needed")
if old_wibox then
@@ -129,28 +129,30 @@ local function worker(user_args)
old_wibox = nil
end
if not busy then
- busy, one_shot = true, true
+ busy = true
+ local one_shot = true
awful.spawn.with_line_callback("bash -c " .. DIR .. "upgrade", {
stdout = function()
if one_shot then
upgrading, one_shot = true, false
- timer:emit_signal("timeout")
+ timer:emit_signal("timeout")
end
end,
stderr = function(line)
if (line ~= nil and line ~= "") then
- notification = string.find(line, "warning") and
+ if string.find(line, "warning") then
naughty.notify({
title = "Warning!",
text = line,
timeout = 0
})
- or
+ else
naughty.notify({
preset = naughty.config.presets.critical,
title = "Error!",
text = line,
})
+ end
end
end,
exit = function()
@@ -163,21 +165,21 @@ local function worker(user_args)
end
end)
- _, timer = awful.widget.watch([[bash -c "checkupdates 2>/dev/null"]],
+ timer = select(2, awful.widget.watch([[bash -c "checkupdates 2>/dev/null"]],
_config.interval,
function(widget, stdout)
local upgrades_tbl = {}
for value in stdout:gmatch("([^\n]+)") do
- upgrades_tbl[#upgrades_tbl+1] = value
+ upgrades_tbl[#upgrades_tbl+1] = value
end
- widget:set(#upgrades_tbl)
-
+ widget.set(#upgrades_tbl)
+
local popup_header_height, popup_row_height = 30, 20
local header = wibox.widget {
{
nil,
{
- markup = "<b>" .. (upgrading and "Upgrading " .. #upgrades_tbl .. " Packages" or
+ markup = "<b>" .. (upgrading and "Upgrading " .. #upgrades_tbl .. " Packages" or
(#upgrades_tbl == 0 and "No" or #upgrades_tbl) .. " Available Upgrades") .. "</b>",
layout = wibox.widget.textbox,
},
@@ -197,7 +199,7 @@ local function worker(user_args)
for k, v in ipairs(upgrades_tbl) do
for i = 1, #rows.children do
- if v == rows.children[i]:get_txt() then goto continue end
+ if v == rows.children[i].get_txt() then goto continue end
end
local row = wibox.widget{
{
@@ -214,8 +216,8 @@ local function worker(user_args)
},
layout = wibox.layout.ratio.horizontal,
}
- function row:get_txt() return row:get_children_by_id("txt")[1].text end
- function row:set_idx(idx) row:get_children_by_id("idx")[1]:set_text(idx) end
+ function row.get_txt() return row:get_children_by_id("txt")[1].text end
+ function row.set_idx(idx) row:get_children_by_id("idx")[1]:set_text(idx) end
row:ajust_ratio(2, 0.1, 0.9, 0)
rows:insert(k, row)
::continue::
@@ -246,7 +248,7 @@ local function worker(user_args)
}
end,
pacman_widget
- )
+ ))
return pacman_widget
end