diff options
| author | streetturtle <streetturtle@users.noreply.github.com> | 2020-12-07 15:33:55 -0500 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-12-07 15:33:55 -0500 | 
| commit | d4971690cec1e074999e730d87045e578d71e43c (patch) | |
| tree | b0f05079840eba5467e14bdcd093ad3ed5362cf4 | |
| parent | f078748e76eacae599cf0ad06120d9fff54f8fa5 (diff) | |
| parent | ed2b256407291d8edadfcea9380029633cc7d9d8 (diff) | |
Merge pull request #224 from streetturtle/comply-with-luacheck
Comply with luacheck
38 files changed, 434 insertions, 413 deletions
diff --git a/battery-widget/battery.lua b/battery-widget/battery.lua index 8a6982a..b0a71e7 100644 --- a/battery-widget/battery.lua +++ b/battery-widget/battery.lua @@ -20,10 +20,11 @@ local dpi = require('beautiful').xresources.apply_dpi  -- Battery 0: Charging, 53%, 00:57:43 until charged  local HOME = os.getenv("HOME") +local WIDGET_DIR = HOME .. '/.config/awesome/awesome-wm-widgets/battery-widget'  local battery_widget = {} -local function worker(args) -    local args = args or {} +local function worker(user_args) +    local args = user_args or {}      local font = args.font or 'Play 8'      local path_to_icons = args.path_to_icons or "/usr/share/icons/Arc/status/symbolic/" @@ -39,7 +40,7 @@ local function worker(args)      local warning_msg_title = args.warning_msg_title or 'Huston, we have a problem'      local warning_msg_text = args.warning_msg_text or 'Battery is dying'      local warning_msg_position = args.warning_msg_position or 'bottom_right' -    local warning_msg_icon = args.warning_msg_icon or HOME .. '/.config/awesome/awesome-wm-widgets/batteryarc-widget/spaceman.jpg' +    local warning_msg_icon = args.warning_msg_icon or WIDGET_DIR .. '/spaceman.jpg'      local enable_battery_warning = args.enable_battery_warning      if enable_battery_warning == nil then          enable_battery_warning = true @@ -59,7 +60,8 @@ local function worker(args)              widget = wibox.widget.imagebox,              resize = false          }, -        layout = wibox.container.margin(_, 0, 0, 3) +        bottom = 3, +        layout = wibox.container.margin      }      local level_widget = wibox.widget {          font = font, @@ -119,11 +121,11 @@ local function worker(args)      local batteryType = "battery-good-symbolic"      watch("acpi -i", timeout, -    function(widget, stdout, stderr, exitreason, exitcode) +    function(widget, stdout)          local battery_info = {}          local capacities = {}          for s in stdout:gmatch("[^\r\n]+") do -            local status, charge_str, time = string.match(s, '.+: (%a+), (%d?%d?%d)%%,?(.*)') +            local status, charge_str, _ = string.match(s, '.+: (%a+), (%d?%d?%d)%%,?(.*)')              if status ~= nil then                  table.insert(battery_info, {status = status, charge = tonumber(charge_str)})              else @@ -133,7 +135,7 @@ local function worker(args)          end          local capacity = 0 -        for i, cap in ipairs(capacities) do +        for _, cap in ipairs(capacities) do              capacity = capacity + cap          end @@ -184,12 +186,12 @@ local function worker(args)          battery_widget:connect_signal("mouse::enter", function() show_battery_status(batteryType) end)          battery_widget:connect_signal("mouse::leave", function() naughty.destroy(notification) end)      elseif display_notification_onClick then -        battery_widget:connect_signal("button::press", function(_,_,_,button)  +        battery_widget:connect_signal("button::press", function(_,_,_,button)              if (button == 3) then show_battery_status(batteryType) end          end)          battery_widget:connect_signal("mouse::leave", function() naughty.destroy(notification) end)      end -     +      return wibox.container.margin(battery_widget, margin_left, margin_right)  end diff --git a/batteryarc-widget/batteryarc.lua b/batteryarc-widget/batteryarc.lua index 858d3b3..1b6752a 100644 --- a/batteryarc-widget/batteryarc.lua +++ b/batteryarc-widget/batteryarc.lua @@ -15,12 +15,13 @@ local wibox = require("wibox")  local watch = require("awful.widget.watch")  local HOME = os.getenv("HOME") +local WIDGET_DIR = HOME .. '/.config/awesome/awesome-wm-widgets/batteryarc-widget' -local widget = {} +local batteryarc_widget = {} -local function worker(args) +local function worker(user_args) -    local args = args or {} +    local args = user_args or {}      local font = args.font or 'Play 6'      local arc_thickness = args.arc_thickness or 2 @@ -38,7 +39,7 @@ local function worker(args)      local warning_msg_title = args.warning_msg_title or 'Houston, we have a problem'      local warning_msg_text = args.warning_msg_text or 'Battery is dying'      local warning_msg_position = args.warning_msg_position or 'bottom_right' -    local warning_msg_icon = args.warning_msg_icon or HOME .. '/.config/awesome/awesome-wm-widgets/batteryarc-widget/spaceman.jpg' +    local warning_msg_icon = args.warning_msg_icon or WIDGET_DIR .. '/spaceman.jpg'      local enable_battery_warning = args.enable_battery_warning      if enable_battery_warning == nil then          enable_battery_warning = true @@ -53,7 +54,7 @@ local function worker(args)      local text_with_background = wibox.container.background(text) -    widget = wibox.widget { +    batteryarc_widget = wibox.widget {          text_with_background,          max_value = 100,          rounded_edge = true, @@ -88,7 +89,7 @@ local function worker(args)          local charge = 0          local status          for s in stdout:gmatch("[^\r\n]+") do -            local cur_status, charge_str, time = string.match(s, '.+: (%a+), (%d?%d?%d)%%,?(.*)') +            local cur_status, charge_str, _ = string.match(s, '.+: (%a+), (%d?%d?%d)%%,?(.*)')              if cur_status ~= nil and charge_str ~=nil then                  local cur_charge = tonumber(charge_str)                  if cur_charge > charge then @@ -132,7 +133,7 @@ local function worker(args)          end      end -    watch("acpi", timeout, update_widget, widget) +    watch("acpi", timeout, update_widget, batteryarc_widget)      -- Popup with battery info      local notification @@ -150,18 +151,18 @@ local function worker(args)      end      if show_notification_mode == 'on_hover' then -        widget:connect_signal("mouse::enter", function() show_battery_status() end) -        widget:connect_signal("mouse::leave", function() naughty.destroy(notification) end) +        batteryarc_widget:connect_signal("mouse::enter", function() show_battery_status() end) +        batteryarc_widget:connect_signal("mouse::leave", function() naughty.destroy(notification) end)      elseif show_notification_mode == 'on_click' then -        widget:connect_signal('button::press', function(_, _, _, button) +        batteryarc_widget:connect_signal('button::press', function(_, _, _, button)              if (button == 1) then show_battery_status() end          end)      end -    return widget +    return batteryarc_widget  end -return setmetatable(widget, { __call = function(_, ...) +return setmetatable(batteryarc_widget, { __call = function(_, ...)      return worker(...)  end }) diff --git a/bitbucket-widget/bitbucket.lua b/bitbucket-widget/bitbucket.lua index 8d47f2f..b85e653 100644 --- a/bitbucket-widget/bitbucket.lua +++ b/bitbucket-widget/bitbucket.lua @@ -21,7 +21,12 @@ local gfs = require("gears.filesystem")  local HOME_DIR = os.getenv("HOME")  local WIDGET_DIR = HOME_DIR .. '/.config/awesome/awesome-wm-widgets/bitbucket-widget/' -local GET_PRS_CMD= [[bash -c "curl -s --show-error -n '%s/2.0/repositories/%s/%s/pullrequests?fields=values.participants.approved,values.title,values.links.html,values.author.display_name,values.author.uuid,values.author.links.avatar,values.source.branch,values.destination.branch,values.comment_count,values.created_on&q=reviewers.uuid+%%3D+%%22%s%%22+AND+state+%%3D+%%22OPEN%%22' | jq '.[] '"]] +local GET_PRS_CMD= [[bash -c "curl -s --show-error -n ]] +    .. [['%s/2.0/repositories/%s/%s/pullrequests]] +    .. [[?fields=values.participants.approved,values.title,values.links.html,values.author.display_name,]] +    .. [[values.author.uuid,values.author.links.avatar,values.source.branch,values.destination.branch,]] +    .. [[values.comment_count,values.created_on&q=reviewers.uuid+%%3D+%%22%s%%22+AND+state+%%3D+%%22OPEN%%22']] +    .. [[ | jq '.[] '"]]  local DOWNLOAD_AVATAR_CMD = [[bash -c "curl -L -n --create-dirs -o %s/.cache/awmw/bitbucket-widget/avatars/%s %s"]]  local bitbucket_widget = wibox.widget { @@ -71,7 +76,7 @@ local popup = awful.popup{  --- Converts string representation of date (2020-06-02T11:25:27Z) to date  local function parse_date(date_str)      local pattern = "(%d+)%-(%d+)%-(%d+)T(%d+):(%d+):(%d+)%Z" -    local y, m, d, h, min, sec, mil = date_str:match(pattern) +    local y, m, d, h, min, sec, _ = date_str:match(pattern)      return os.time{year = y, month = m, day = d, hour = h, min = min, sec = sec}  end @@ -111,9 +116,9 @@ local function count_approves(participants)      return res  end -local function worker(args) +local function worker(user_args) -    local args = args or {} +    local args = user_args or {}      local icon = args.icon or WIDGET_DIR .. '/bitbucket-icon-gradient-blue.svg'      local host = args.host or show_warning('Bitbucket host is not set') @@ -279,11 +284,8 @@ local function worker(args)              }              if not gfs.file_readable(path_to_avatar) then -                spawn.easy_async(string.format( -                        DOWNLOAD_AVATAR_CMD, -                        HOME_DIR, -                        pr.author.uuid, -                        pr.author.links.avatar.href), function() row:get_children_by_id('avatar')[1]:set_image(path_to_avatar) end) +                local cmd = string.format(DOWNLOAD_AVATAR_CMD, HOME_DIR, pr.author.uuid, pr.author.links.avatar.href) +                spawn.easy_async(cmd, function() row:get_children_by_id('avatar')[1]:set_image(path_to_avatar) end)              end @@ -299,34 +301,36 @@ local function worker(args)                      )              )              row:get_children_by_id('avatar')[1]:buttons( -                    awful.util.table.join( -                            awful.button({}, 1, function() -                                spawn.with_shell(string.format('xdg-open "https://bitbucket.org/%s/%s/pull-requests?state=OPEN&author=%s"', workspace, repo_slug, pr.author.uuid)) -                                popup.visible = false -                            end) -                    ) +                awful.util.table.join( +                    awful.button({}, 1, function() +                        spawn.with_shell( +                            string.format('xdg-open "https://bitbucket.org/%s/%s/pull-requests?state=OPEN&author=%s"', +                            workspace, repo_slug, pr.author.uuid) +                        ) +                        popup.visible = false +                    end) +                )              )              local old_cursor, old_wibox -            row:get_children_by_id('title')[1]:connect_signal("mouse::enter", function(c) +            row:get_children_by_id('title')[1]:connect_signal("mouse::enter", function()                  local wb = mouse.current_wibox                  old_cursor, old_wibox = wb.cursor, wb                  wb.cursor = "hand1"              end) -            row:get_children_by_id('title')[1]:connect_signal("mouse::leave", function(c) +            row:get_children_by_id('title')[1]:connect_signal("mouse::leave", function()                  if old_wibox then                      old_wibox.cursor = old_cursor                      old_wibox = nil                  end              end) -            local old_cursor, old_wibox -            row:get_children_by_id('avatar')[1]:connect_signal("mouse::enter", function(c) +            row:get_children_by_id('avatar')[1]:connect_signal("mouse::enter", function()                  local wb = mouse.current_wibox                  old_cursor, old_wibox = wb.cursor, wb                  wb.cursor = "hand1"              end) -            row:get_children_by_id('avatar')[1]:connect_signal("mouse::leave", function(c) +            row:get_children_by_id('avatar')[1]:connect_signal("mouse::leave", function()                  if old_wibox then                      old_wibox.cursor = old_cursor                      old_wibox = nil diff --git a/brightness-widget/brightness.lua b/brightness-widget/brightness.lua index 0cfbea4..4686041 100644 --- a/brightness-widget/brightness.lua +++ b/brightness-widget/brightness.lua @@ -17,11 +17,11 @@ local GET_BRIGHTNESS_CMD = "light -G"   -- "xbacklight -get"  local INC_BRIGHTNESS_CMD = "light -A 5" -- "xbacklight -inc 5"  local DEC_BRIGHTNESS_CMD = "light -U 5" -- "xbacklight -dec 5" -local widget = {} +local brightness_widget = {} -local function worker(args) +local function worker(user_args) -    local args = args or {} +    local args = user_args or {}      local get_brightness_cmd = args.get_brightness_cmd or GET_BRIGHTNESS_CMD      local inc_brightness_cmd = args.inc_brightness_cmd or INC_BRIGHTNESS_CMD @@ -43,7 +43,7 @@ local function worker(args)          widget = wibox.container.margin      } -    widget = wibox.widget { +    brightness_widget = wibox.widget {          brightness_icon,          brightness_text,          layout = wibox.layout.fixed.horizontal, @@ -52,9 +52,9 @@ local function worker(args)      local update_widget = function(widget, stdout, _, _, _)          local brightness_level = tonumber(string.format("%.0f", stdout))          widget:set_text(" " .. brightness_level .. "%") -    end, +    end -    widget:connect_signal("button::press", function(_, _, _, button) +    brightness_widget:connect_signal("button::press", function(_, _, _, button)          if (button == 4) then              spawn(inc_brightness_cmd, false)          elseif (button == 5) then @@ -64,9 +64,9 @@ local function worker(args)      watch(get_brightness_cmd, timeout, update_widget, brightness_text) -    return widget +    return brightness_widget  end -return setmetatable(widget, { __call = function(_, ...) +return setmetatable(brightness_widget, { __call = function(_, ...)      return worker(...)  end }) diff --git a/brightnessarc-widget/brightnessarc.lua b/brightnessarc-widget/brightnessarc.lua index ee93482..fd37894 100644 --- a/brightnessarc-widget/brightnessarc.lua +++ b/brightnessarc-widget/brightnessarc.lua @@ -18,11 +18,11 @@ local GET_BRIGHTNESS_CMD = "light -G" -- "xbacklight -get"  local INC_BRIGHTNESS_CMD = "light -A 5" -- "xbacklight -inc 5"  local DEC_BRIGHTNESS_CMD = "light -U 5" -- "xbacklight -dec 5" -local widget = {} +local brightness_widget = {} -local function worker(args) +local function worker(user_args) -    local args = args or {} +    local args = user_args or {}      local get_brightness_cmd = args.get_brightness_cmd or GET_BRIGHTNESS_CMD      local inc_brightness_cmd = args.inc_brightness_cmd or INC_BRIGHTNESS_CMD @@ -39,7 +39,7 @@ local function worker(args)          widget = wibox.widget.imagebox,      } -    widget = wibox.widget { +    brightness_widget = wibox.widget {          icon,          max_value = 1,          thickness = 2, @@ -57,9 +57,9 @@ local function worker(args)          brightness_level = tonumber(string.format("% 3d", brightness_level))          widget.value = brightness_level / 100; -    end, +    end -    widget:connect_signal("button::press", function(_, _, _, button) +    brightness_widget:connect_signal("button::press", function(_, _, _, button)          if (button == 4) then              spawn(inc_brightness_cmd, false)          elseif (button == 5) then @@ -67,11 +67,11 @@ local function worker(args)          end      end) -    watch(get_brightness_cmd, timeout, update_widget, widget) +    watch(get_brightness_cmd, timeout, update_widget, brightness_widget) -    return widget +    return brightness_widget  end -return setmetatable(widget, { __call = function(_, ...) +return setmetatable(brightness_widget, { __call = function(_, ...)      return worker(...)  end }) diff --git a/calendar-widget/calendar.lua b/calendar-widget/calendar.lua index 5cf97c8..b39b563 100644 --- a/calendar-widget/calendar.lua +++ b/calendar-widget/calendar.lua @@ -16,7 +16,7 @@ local naughty = require("naughty")  local calendar_widget = {} -local function worker(args) +local function worker(user_args)      local calendar_themes = {          nord = { @@ -82,7 +82,7 @@ local function worker(args)      } -    local args = args or {} +    local args = user_args or {}      if args.theme ~= nil and calendar_themes[args.theme] == nil then          naughty.notify({ @@ -154,7 +154,9 @@ local function worker(args)          -- Change bg color for weekends          local d = { year = date.year, month = (date.month or 1), day = (date.day or 1) }          local weekday = tonumber(os.date('%w', os.time(d))) -        local default_bg = (weekday == 0 or weekday == 6) and calendar_themes[theme].weekend_day_bg or calendar_themes[theme].bg +        local default_bg = (weekday == 0 or weekday == 6) +            and calendar_themes[theme].weekend_day_bg +            or calendar_themes[theme].bg          local ret = wibox.widget {              {                  { @@ -228,7 +230,8 @@ local function worker(args)              elseif placement == 'top_right' then                  awful.placement.top_right(popup, { margins = { top = 30, right = 10}, parent = awful.screen.focused() })              elseif placement == 'bottom_right' then -                awful.placement.bottom_right(popup, { margins = { bottom = 30, right = 10}, parent = awful.screen.focused() }) +                awful.placement.bottom_right(popup, { margins = { bottom = 30, right = 10}, +                    parent = awful.screen.focused() })              else                  awful.placement.top(popup, { margins = { top = 30 }, parent = awful.screen.focused() })              end diff --git a/cpu-widget/cpu-widget.lua b/cpu-widget/cpu-widget.lua index 54547ae..bed40fe 100644 --- a/cpu-widget/cpu-widget.lua +++ b/cpu-widget/cpu-widget.lua @@ -14,10 +14,13 @@ local wibox = require("wibox")  local beautiful = require("beautiful")  local gears = require("gears") +local CMD = [[sh -c "grep '^cpu.' /proc/stat; ps -eo '%p|%c|%C|' -o "%mem" -o '|%a' --sort=-%cpu ]] +    .. [[| head -11 | tail -n +2"]] +  local HOME_DIR = os.getenv("HOME")  local WIDGET_DIR = HOME_DIR .. '/.config/awesome/awesome-wm-widgets/cpu-widget' -local widget = {} +local cpu_widget = {}  local cpu_rows = {      spacing = 4,      layout = wibox.layout.fixed.vertical, @@ -86,9 +89,9 @@ local function create_kill_process_button()      }  end -local function worker(args) +local function worker(user_args) -    local args = args or {} +    local args = user_args or {}      local width = args.width or 50      local step_width = args.step_width or 2 @@ -120,8 +123,8 @@ local function worker(args)      }      -- Do not update process rows when mouse cursor is over the widget -    popup:connect_signal("mouse::enter", function(c) is_update = false end) -    popup:connect_signal("mouse::leave", function(c) is_update = true end) +    popup:connect_signal("mouse::enter", function() is_update = false end) +    popup:connect_signal("mouse::leave", function() is_update = true end)      cpugraph_widget:buttons(              awful.util.table.join( @@ -136,155 +139,162 @@ local function worker(args)      )      --- By default graph widget goes from left to right, so we mirror it and push up a bit -    local cpu_widget = wibox.container.margin(wibox.container.mirror(cpugraph_widget, { horizontal = true }), 0, 0, 0, 2) +    cpu_widget = wibox.widget { +        { +            cpugraph_widget, +            reflection = {horizontal = true}, +            layout = wibox.container.mirror +        }, +        bottom = 2, +        widget = wibox.container.margin +    }      local cpus = {} -    watch([[sh -c "grep '^cpu.' /proc/stat; ps -eo '%p|%c|%C|' -o "%mem" -o '|%a' --sort=-%cpu | head -11 | tail -n +2"]], timeout, -            function(widget, stdout) -                local i = 1 -                local j = 1 -                for line in stdout:gmatch("[^\r\n]+") do -                    if starts_with(line, 'cpu') then +    watch(CMD, timeout, function(widget, stdout) +        local i = 1 +        local j = 1 +        for line in stdout:gmatch("[^\r\n]+") do +            if starts_with(line, 'cpu') then -                        if cpus[i] == nil then cpus[i] = {} end +                if cpus[i] == nil then cpus[i] = {} end -                        local name, user, nice, system, idle, iowait, irq, softirq, steal, guest, guest_nice = -                            line:match('(%w+)%s+(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)') +                local name, user, nice, system, idle, iowait, irq, softirq, steal, _, _ = +                    line:match('(%w+)%s+(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)%s(%d+)') -                        local total = user + nice + system + idle + iowait + irq + softirq + steal +                local total = user + nice + system + idle + iowait + irq + softirq + steal -                        local diff_idle = idle - tonumber(cpus[i]['idle_prev'] == nil and 0 or cpus[i]['idle_prev']) -                        local diff_total = total - tonumber(cpus[i]['total_prev'] == nil and 0 or cpus[i]['total_prev']) -                        local diff_usage = (1000 * (diff_total - diff_idle) / diff_total + 5) / 10 +                local diff_idle = idle - tonumber(cpus[i]['idle_prev'] == nil and 0 or cpus[i]['idle_prev']) +                local diff_total = total - tonumber(cpus[i]['total_prev'] == nil and 0 or cpus[i]['total_prev']) +                local diff_usage = (1000 * (diff_total - diff_idle) / diff_total + 5) / 10 -                        cpus[i]['total_prev'] = total -                        cpus[i]['idle_prev'] = idle +                cpus[i]['total_prev'] = total +                cpus[i]['idle_prev'] = idle -                        if i == 1 then -                            widget:add_value(diff_usage) -                        end +                if i == 1 then +                    widget:add_value(diff_usage) +                end + +                local row = wibox.widget +                { +                    create_textbox{text = name}, +                    create_textbox{text = math.floor(diff_usage) .. '%'}, +                    { +                        max_value = 100, +                        value = diff_usage, +                        forced_height = 20, +                        forced_width = 150, +                        paddings = 1, +                        margins = 4, +                        border_width = 1, +                        border_color = beautiful.bg_focus, +                        background_color = beautiful.bg_normal, +                        bar_border_width = 1, +                        bar_border_color = beautiful.bg_focus, +                        color = "linear:150,0:0,0:0,#D08770:0.3,#BF616A:0.6," .. beautiful.fg_normal, +                        widget = wibox.widget.progressbar, -                        local row = wibox.widget +                    }, +                    layout  = wibox.layout.ratio.horizontal +                } +                row:ajust_ratio(2, 0.15, 0.15, 0.7) +                cpu_rows[i] = row +                i = i + 1 +            else +                if is_update == true then + +                    local columns = split(line, '|') + +                    local pid = columns[1] +                    local comm = columns[2] +                    local cpu = columns[3] +                    local mem = columns[4] +                    local cmd = columns[5] + +                    local kill_proccess_button = enable_kill_button and create_kill_process_button() or nil + +                    local pid_name_rest = wibox.widget{ +                        create_textbox{text = pid}, +                        create_textbox{text = comm},                          { -                            create_textbox{text = name}, -                            create_textbox{text = math.floor(diff_usage) .. '%'}, -                            { -                                max_value = 100, -                                value = diff_usage, -                                forced_height = 20, -                                forced_width = 150, -                                paddings = 1, -                                margins = 4, -                                border_width = 1, -                                border_color = beautiful.bg_focus, -                                background_color = beautiful.bg_normal, -                                bar_border_width = 1, -                                bar_border_color = beautiful.bg_focus, -                                color = "linear:150,0:0,0:0,#D08770:0.3,#BF616A:0.6," .. beautiful.fg_normal, -                                widget = wibox.widget.progressbar, - -                            }, -                            layout  = wibox.layout.ratio.horizontal -                        } -                        row:ajust_ratio(2, 0.15, 0.15, 0.7) -                        cpu_rows[i] = row -                        i = i + 1 -                    else -                        if is_update == true then - -                            local columns = split(line, '|') - -                            local pid = columns[1] -                            local comm = columns[2] -                            local cpu = columns[3] -                            local mem = columns[4] -                            local cmd = columns[5] - -                            local kill_proccess_button = enable_kill_button and create_kill_process_button() or nil - -                            local pid_name_rest = wibox.widget{ -                                create_textbox{text = pid}, -                                create_textbox{text = comm}, -                                { -                                    create_textbox{text = cpu, align = 'center'}, -                                    create_textbox{text = mem, align = 'center'}, -                                    kill_proccess_button, -                                    layout = wibox.layout.fixed.horizontal -                                }, -                                layout  = wibox.layout.ratio.horizontal -                            } -                            pid_name_rest:ajust_ratio(2, 0.2, 0.47, 0.33) - -                            local row = wibox.widget { -                                { -                                    pid_name_rest, -                                    top = 4, -                                    bottom = 4, -                                    widget = wibox.container.margin -                                }, -                                widget = wibox.container.background -                            } - -                            row:connect_signal("mouse::enter", function(c) c:set_bg(beautiful.bg_focus) end) -                            row:connect_signal("mouse::leave", function(c) c:set_bg(beautiful.bg_normal) end) - -                            if enable_kill_button then -                                row:connect_signal("mouse::enter", function(c) kill_proccess_button.icon.opacity = 1 end) -                                row:connect_signal("mouse::leave", function(c) kill_proccess_button.icon.opacity = 0.1 end) - -                                kill_proccess_button:buttons( -                                    awful.util.table.join( awful.button({}, 1, function()  -                                        row:set_bg('#ff0000') -                                        awful.spawn.with_shell('kill -9 ' .. pid) -                                    end) ) ) -                            end +                            create_textbox{text = cpu, align = 'center'}, +                            create_textbox{text = mem, align = 'center'}, +                            kill_proccess_button, +                            layout = wibox.layout.fixed.horizontal +                        }, +                        layout  = wibox.layout.ratio.horizontal +                    } +                    pid_name_rest:ajust_ratio(2, 0.2, 0.47, 0.33) -                            awful.tooltip { -                                objects = { row }, -                                mode = 'outside', -                                preferred_positions = {'bottom'}, -                                timer_function = function() -                                    local text = cmd -                                    if process_info_max_length > 0 and text:len() > process_info_max_length then -                                        text = text:sub(0, process_info_max_length - 3) .. '...' -                                    end - -                                    return text -                                            :gsub('%s%-', '\n\t-') -- put arguments on a new line -                                            :gsub(':/', '\n\t\t:/') -- java classpath uses : to separate jars -                                end, -                            } - -                            process_rows[j] = row - -                            j = j + 1 -                        end +                    local row = wibox.widget { +                        { +                            pid_name_rest, +                            top = 4, +                            bottom = 4, +                            widget = wibox.container.margin +                        }, +                        widget = wibox.container.background +                    } + +                    row:connect_signal("mouse::enter", function(c) c:set_bg(beautiful.bg_focus) end) +                    row:connect_signal("mouse::leave", function(c) c:set_bg(beautiful.bg_normal) end) +                    if enable_kill_button then +                        row:connect_signal("mouse::enter", function() kill_proccess_button.icon.opacity = 1 end) +                        row:connect_signal("mouse::leave", function() kill_proccess_button.icon.opacity = 0.1 end) + +                        kill_proccess_button:buttons( +                            awful.util.table.join( awful.button({}, 1, function() +                                row:set_bg('#ff0000') +                                awful.spawn.with_shell('kill -9 ' .. pid) +                            end) ) )                      end + +                    awful.tooltip { +                        objects = { row }, +                        mode = 'outside', +                        preferred_positions = {'bottom'}, +                        timer_function = function() +                            local text = cmd +                            if process_info_max_length > 0 and text:len() > process_info_max_length then +                                text = text:sub(0, process_info_max_length - 3) .. '...' +                            end + +                            return text +                                    :gsub('%s%-', '\n\t-') -- put arguments on a new line +                                    :gsub(':/', '\n\t\t:/') -- java classpath uses : to separate jars +                        end, +                    } + +                    process_rows[j] = row + +                    j = j + 1                  end -                popup:setup { -                    { -                        cpu_rows, -                        { -                            orientation = 'horizontal', -                            forced_height = 15, -                            color = beautiful.bg_focus, -                            widget = wibox.widget.separator -                        }, -                        create_process_header{with_action_column = enable_kill_button}, -                        process_rows, -                        layout = wibox.layout.fixed.vertical, -                    }, -                    margins = 8, -                    widget = wibox.container.margin -                } -            end, -            cpugraph_widget + +            end +        end +        popup:setup { +            { +                cpu_rows, +                { +                    orientation = 'horizontal', +                    forced_height = 15, +                    color = beautiful.bg_focus, +                    widget = wibox.widget.separator +                }, +                create_process_header{with_action_column = enable_kill_button}, +                process_rows, +                layout = wibox.layout.fixed.vertical, +            }, +            margins = 8, +            widget = wibox.container.margin +        } +    end, +    cpugraph_widget      )      return cpu_widget  end -return setmetatable(widget, { __call = function(_, ...) +return setmetatable(cpu_widget, { __call = function(_, ...)      return worker(...)  end }) diff --git a/docker-widget/docker.lua b/docker-widget/docker.lua index 5bd5746..6ea0179 100644 --- a/docker-widget/docker.lua +++ b/docker-widget/docker.lua @@ -19,7 +19,8 @@ local HOME_DIR = os.getenv("HOME")  local WIDGET_DIR = HOME_DIR .. '/.config/awesome/awesome-wm-widgets/docker-widget'  local ICONS_DIR = WIDGET_DIR .. '/icons/' -local LIST_CONTAINERS_CMD = [[bash -c "docker container ls -a -s -n %s --format '{{.Names}}::{{.ID}}::{{.Image}}::{{.Status}}::{{.Size}}'"]] +local LIST_CONTAINERS_CMD = [[bash -c "docker container ls -a -s -n %s]] +    .. [[ --format '{{.Names}}::{{.ID}}::{{.Image}}::{{.Status}}::{{.Size}}'"]]  --- Utility function to show warning messages  local function show_warning(message) @@ -83,9 +84,9 @@ local status_to_icon_name = {      Paused = ICONS_DIR .. 'pause.svg'  } -local function worker(args) +local function worker(user_args) -    local args = args or {} +    local args = user_args or {}      local icon = args.icon or ICONS_DIR .. 'docker.svg'      local number_of_containers = args.number_of_containers or -1 @@ -97,15 +98,15 @@ local function worker(args)          layout = wibox.layout.fixed.vertical,      } -    local function rebuild_widget(stdout, stderr, _, _) -        if stderr ~= '' then -            show_warning(stderr) +    local function rebuild_widget(containers, errors, _, _) +        if errors ~= '' then +            show_warning(errors)              return          end          for i = 0, #rows do rows[i]=nil end -        for line in stdout:gmatch("[^\r\n]+") do +        for line in containers:gmatch("[^\r\n]+") do              local container = parse_container(line) @@ -163,10 +164,12 @@ local function worker(args)                          status_icon:set_opacity(0.2)                          status_icon:emit_signal('widget::redraw_needed') -                        spawn.easy_async('docker ' .. command .. ' ' .. container['name'], function(stdout, stderr) -                            if stderr ~= '' then show_warning(stderr) end -                            spawn.easy_async(string.format(LIST_CONTAINERS_CMD, number_of_containers), function(stdout, stderr) -                                rebuild_widget(stdout, stderr) end) +                        spawn.easy_async('docker ' .. command .. ' ' .. container['name'], function() +                            if errors ~= '' then show_warning(errors) end +                            spawn.easy_async(string.format(LIST_CONTAINERS_CMD, number_of_containers), +                                function(stdout, stderr) +                                    rebuild_widget(stdout, stderr) +                                end)                              end)                      end) ) )              else @@ -220,10 +223,12 @@ local function worker(args)                          status_icon:set_opacity(0.2)                          status_icon:emit_signal('widget::redraw_needed') -                        awful.spawn.easy_async('docker ' .. command .. ' ' .. container['name'], function(stdout, stderr) +                        awful.spawn.easy_async('docker ' .. command .. ' ' .. container['name'], function(_, stderr)                              if stderr ~= '' then show_warning(stderr) end -                            spawn.easy_async(string.format(LIST_CONTAINERS_CMD, number_of_containers), function(stdout, stderr) -                                rebuild_widget(stdout, stderr) end) +                            spawn.easy_async(string.format(LIST_CONTAINERS_CMD, number_of_containers), +                                function(stdout, container_errors) +                                    rebuild_widget(stdout, container_errors) +                                end)                              end)                      end) ) )              else @@ -250,11 +255,12 @@ local function worker(args)                  }                  delete_button:buttons(                          awful.util.table.join( awful.button({}, 1, function() -                            awful.spawn.easy_async('docker rm ' .. container['name'], function(stdout, stderr) -                                if stderr ~= '' then show_warning(stderr) end -                                spawn.easy_async(string.format(LIST_CONTAINERS_CMD, number_of_containers), function(stdout, stderr) -                                    rebuild_widget(stdout, stderr) end) -                                end) +                            awful.spawn.easy_async('docker rm ' .. container['name'], function(_, rm_stderr) +                                if rm_stderr ~= '' then show_warning(rm_stderr) end +                                spawn.easy_async(string.format(LIST_CONTAINERS_CMD, number_of_containers), +                                    function(lc_stdout, lc_stderr) +                                        rebuild_widget(lc_stdout, lc_stderr) end) +                                    end)                          end)))                  local old_cursor, old_wibox @@ -350,10 +356,11 @@ local function worker(args)                      if popup.visible then                          popup.visible = not popup.visible                      else -                        spawn.easy_async(string.format(LIST_CONTAINERS_CMD, number_of_containers), function(stdout, stderr) -                            rebuild_widget(stdout, stderr) -                            popup:move_next_to(mouse.current_widget_geometry) -                        end) +                        spawn.easy_async(string.format(LIST_CONTAINERS_CMD, number_of_containers), +                            function(stdout, stderr) +                                rebuild_widget(stdout, stderr) +                                popup:move_next_to(mouse.current_widget_geometry) +                            end)                      end                  end)          ) diff --git a/email-widget/email.lua b/email-widget/email.lua index d6619f9..f7656fb 100644 --- a/email-widget/email.lua +++ b/email-widget/email.lua @@ -5,30 +5,30 @@ local watch = require("awful.widget.watch")  local path_to_icons = "/usr/share/icons/Arc/actions/22/" -email_widget = wibox.widget.textbox() +local email_widget = wibox.widget.textbox()  email_widget:set_font('Play 9') -email_icon = wibox.widget.imagebox() +local email_icon = wibox.widget.imagebox()  email_icon:set_image(path_to_icons .. "/mail-mark-new.png")  watch(      "python /home/<username>/.config/awesome/email-widget/count_unread_emails.py", 20, -    function(widget, stdout, stderr, exitreason, exitcode) +    function(_, stdout)          local unread_emails_num = tonumber(stdout) or 0          if (unread_emails_num > 0) then -        	email_icon:set_image(path_to_icons .. "/mail-mark-unread.png") +            email_icon:set_image(path_to_icons .. "/mail-mark-unread.png")  	        email_widget:set_text(stdout)          elseif (unread_emails_num == 0) then -        	email_icon:set_image(path_to_icons .. "/mail-message-new.png") -   	        email_widget:set_text("") -        end	 +            email_icon:set_image(path_to_icons .. "/mail-message-new.png") +            email_widget:set_text("") +        end      end  ) -function show_emails() +local function show_emails()      awful.spawn.easy_async([[bash -c 'python /home/<username>/.config/awesome/email-widget/read_unread_emails.py']], -        function(stdout, stderr, reason, exit_code)    +        function(stdout)              naughty.notify{                  text = stdout,                  title = "Unread Emails", diff --git a/experiments/spotify-player/spotify-player.lua b/experiments/spotify-player/spotify-player.lua index 9fb725b..a6c53df 100644 --- a/experiments/spotify-player/spotify-player.lua +++ b/experiments/spotify-player/spotify-player.lua @@ -6,7 +6,7 @@  -- @author Pavel Makhov  -- @copyright 2020 Pavel Makhov  ------------------------------------------------- - +--luacheck:ignore  local awful = require("awful")  local wibox = require("wibox")  local watch = require("awful.widget.watch") diff --git a/experiments/volume/utils.lua b/experiments/volume/utils.lua index dcaeb84..417a666 100644 --- a/experiments/volume/utils.lua +++ b/experiments/volume/utils.lua @@ -1,5 +1,4 @@ -local json = require("json")  local utils = {} diff --git a/experiments/volume/volume.lua b/experiments/volume/volume.lua index 9110a45..a044ecf 100644 --- a/experiments/volume/volume.lua +++ b/experiments/volume/volume.lua @@ -68,7 +68,7 @@ local function build_rows(devices, on_checkbox_click, device_type)              widget        = wibox.widget.checkbox          } -        checkbox:connect_signal("button::press", function(c) +        checkbox:connect_signal("button::press", function()              spawn.easy_async(string.format([[sh -c 'pacmd set-default-%s "%s"']], device_type, device.name), function()                  on_checkbox_click()              end) @@ -105,19 +105,19 @@ local function build_rows(devices, on_checkbox_click, device_type)          row:connect_signal("mouse::leave", function(c) c:set_bg(beautiful.bg_normal) end)          local old_cursor, old_wibox -        row:connect_signal("mouse::enter", function(c) +        row:connect_signal("mouse::enter", function()              local wb = mouse.current_wibox              old_cursor, old_wibox = wb.cursor, wb              wb.cursor = "hand1"          end) -        row:connect_signal("mouse::leave", function(c) +        row:connect_signal("mouse::leave", function()              if old_wibox then                  old_wibox.cursor = old_cursor                  old_wibox = nil              end          end) -        row:connect_signal("button::press", function(c) +        row:connect_signal("button::press", function()              spawn.easy_async(string.format([[sh -c 'pacmd set-default-%s "%s"']], device_type, device.name), function()                  on_checkbox_click()              end) @@ -158,9 +158,9 @@ local function rebuild_popup()  end -local function worker(args) +local function worker(user_args) -    local args = args or {} +    local args = user_args or {}      local widget_type = args.widget_type diff --git a/experiments/volume/widgets/icon-and-text-widget.lua b/experiments/volume/widgets/icon-and-text-widget.lua index 5517f11..6ba6979 100644 --- a/experiments/volume/widgets/icon-and-text-widget.lua +++ b/experiments/volume/widgets/icon-and-text-widget.lua @@ -24,7 +24,7 @@ function widget.get_widget()          is_muted = true,          set_volume_level = function(self, new_value)              self:get_children_by_id('txt')[1]:set_text(new_value) -            local volume_icon_name = '' +            local volume_icon_name              if self.is_muted then                  volume_icon_name = 'audio-volume-muted-symbolic.svg'              else @@ -41,7 +41,7 @@ function widget.get_widget()          end,          mute = function(self)              self.is_muted = true -            self:get_children_by_id('icon')[1]:set_image(WIDGET_DIR .. 'audio-volume-muted-symbolic.svg')  +            self:get_children_by_id('icon')[1]:set_image(WIDGET_DIR .. 'audio-volume-muted-symbolic.svg')          end,          unmute = function(self)              self.is_muted = false diff --git a/experiments/volume/widgets/icon-widget.lua b/experiments/volume/widgets/icon-widget.lua index 2a20dde..ac4122c 100644 --- a/experiments/volume/widgets/icon-widget.lua +++ b/experiments/volume/widgets/icon-widget.lua @@ -15,7 +15,7 @@ function widget.get_widget()          valign = 'center',          layout = wibox.container.place,          set_volume_level = function(self, new_value) -            local volume_icon_name = '' +            local volume_icon_name              if self.is_muted then                  volume_icon_name = 'audio-volume-muted-symbolic.svg'              else diff --git a/fs-widget/fs-widget.lua b/fs-widget/fs-widget.lua index e920e47..0c12a3a 100644 --- a/fs-widget/fs-widget.lua +++ b/fs-widget/fs-widget.lua @@ -6,8 +6,8 @@ local gears = require("gears")  local storage_bar_widget = {} -local function worker(args) -    local args = args or {} +local function worker(user_args) +    local args = user_args or {}      local mounts = args.mounts or {'/'}      local timeout = args.timeout or 60 diff --git a/gerrit-widget/gerrit.lua b/gerrit-widget/gerrit.lua index ad5d7a6..682eb0f 100644 --- a/gerrit-widget/gerrit.lua +++ b/gerrit-widget/gerrit.lua @@ -27,13 +27,13 @@ local DOWNLOAD_AVATAR_CMD = [[bash -c "curl --create-dirs -o %s %s"]]  local gerrit_widget = {} -local function worker(args) +local function worker(user_args) -    local args = args or {} +    local args = user_args or {}      local icon = args.icons or HOME_DIR .. '/.config/awesome/awesome-wm-widgets/gerrit-widget/gerrit_icon.svg'      local host = args.host or naughty.notify{ -        preset = naughty.config.presets.critical,  +        preset = naughty.config.presets.critical,          title = 'Gerrit Widget',          text = 'Gerrit host is unknown'      } @@ -93,11 +93,12 @@ local function worker(args)          if name_dict[user_id].username == nil then              name_dict[user_id].username = '' -            spawn.easy_async(string.format(GET_USER_CMD, host, user_id), function(stdout, stderr, reason, exit_code) +            spawn.easy_async(string.format(GET_USER_CMD, host, user_id), function(stdout)                  local user = json.decode(stdout)                  name_dict[tonumber(user_id)].username = user.name                  if not gfs.file_readable(PATH_TO_AVATARS .. user_id) then -                    spawn.easy_async(string.format(DOWNLOAD_AVATAR_CMD, PATH_TO_AVATARS .. user_id, user.avatars[1].url)) +                    spawn.easy_async( +                        string.format(DOWNLOAD_AVATAR_CMD, PATH_TO_AVATARS .. user_id, user.avatars[1].url))                  end              end)              return name_dict[user_id].username @@ -124,7 +125,8 @@ local function worker(args)              naughty.notify{                  icon = HOME_DIR ..'/.config/awesome/awesome-wm-widgets/gerrit-widget/gerrit_icon.svg',                  title = 'New Incoming Review', -                text = reviews[1].project .. '\n' .. get_name_by_user_id(reviews[1].owner._account_id) .. reviews[1].subject .. '\n', +                text = reviews[1].project .. '\n' .. get_name_by_user_id(reviews[1].owner._account_id) .. +                    reviews[1].subject .. '\n',                  run = function() spawn.with_shell("xdg-open https://" .. host .. '/' .. reviews[1]._number) end              }          end @@ -174,7 +176,7 @@ local function worker(args)                  widget = wibox.container.background              } -            row:connect_signal("button::release", function(_, _, _, button) +            row:connect_signal("button::release", function()                  spawn.with_shell("xdg-open " .. host .. '/' .. review._number)              end) diff --git a/github-activity-widget/github-activity-widget.lua b/github-activity-widget/github-activity-widget.lua index 84b5320..5374081 100644 --- a/github-activity-widget/github-activity-widget.lua +++ b/github-activity-widget/github-activity-widget.lua @@ -22,9 +22,12 @@ local WIDGET_DIR = HOME_DIR .. '/.config/awesome/awesome-wm-widgets/github-activ  local ICONS_DIR = WIDGET_DIR .. '/icons/'  local CACHE_DIR = HOME_DIR .. '/.cache/awmw/github-activity-widget' -local GET_EVENTS_CMD = [[bash -c "cat %s/activity.json | jq '.[:%d] | [.[] | {type: .type, actor: .actor, repo: .repo, action: .payload.action, issue_url: .payload.issue.html_url, pr_url: .payload.pull_request.html_url, created_at: .created_at}]'"]] -local DOWNLOAD_AVATAR_CMD = [[bash -c "curl -n --create-dirs -o  %s/avatars/%s %s"]] -local UPDATE_EVENTS_CMD = [[bash -c "curl -s --show-error https://api.github.com/users/%s/received_events > %s/activity.json"]] +local GET_EVENTS_CMD = [[sh -c "cat %s/activity.json | jq '.[:%d] | [.[] ]] +    .. [[| {type: .type, actor: .actor, repo: .repo, action: .payload.action, issue_url: .payload.issue.html_url, ]] +    .. [[pr_url: .payload.pull_request.html_url, created_at: .created_at}]'"]] +local DOWNLOAD_AVATAR_CMD = [[sh -c "curl -n --create-dirs -o  %s/avatars/%s %s"]] +local UPDATE_EVENTS_CMD = [[sh -c "curl -s --show-error https://api.github.com/users/%s/received_events ]] +    ..[[> %s/activity.json"]]  --- Utility function to show warning messages  local function show_warning(message) @@ -37,7 +40,7 @@ end  --- Converts string representation of date (2020-06-02T11:25:27Z) to date  local function parse_date(date_str)      local pattern = "(%d+)%-(%d+)%-(%d+)T(%d+):(%d+):(%d+)%Z" -    local y, m, d, h, min, sec, mil = date_str:match(pattern) +    local y, m, d, h, min, sec, _ = date_str:match(pattern)      return os.time{year = y, month = m, day = d, hour = h, min = min, sec = sec}  end @@ -129,13 +132,13 @@ local github_widget = wibox.widget {  } -local function worker(args) +local function worker(user_args)      if not gfs.dir_readable(CACHE_DIR) then          gfs.make_directories(CACHE_DIR)      end -    local args = args or {} +    local args = user_args or {}      local icon = args.icon or ICONS_DIR .. 'github.png'      local username = args.username or show_warning('No username provided') @@ -147,7 +150,7 @@ local function worker(args)          layout = wibox.layout.fixed.vertical,      } -    local rebuild_widget = function(widget, stdout, stderr, _, _) +    local rebuild_widget = function(stdout, stderr, _, _)          if stderr ~= '' then              show_warning(stderr)              return @@ -197,7 +200,8 @@ local function worker(args)              local repo_info = wibox.widget {                  { -                    markup = '<b> ' .. event.actor.display_login .. '</b> ' .. action_and_link.action_string .. ' <b>' .. event.repo.name .. '</b>', +                    markup = '<b> ' .. event.actor.display_login .. '</b> ' .. action_and_link.action_string +                        .. ' <b>' .. event.repo.name .. '</b>',                      wrap = 'word',                      widget = wibox.widget.textbox                  }, @@ -261,10 +265,11 @@ local function worker(args)                          if popup.visible then                              popup.visible = not popup.visible                          else -                            spawn.easy_async(string.format(GET_EVENTS_CMD, CACHE_DIR, number_of_events), function (stdout, stderr) -                                rebuild_widget(github_widget, stdout, stderr) -                                popup:move_next_to(mouse.current_widget_geometry) -                            end) +                            spawn.easy_async(string.format(GET_EVENTS_CMD, CACHE_DIR, number_of_events), +                                function (stdout, stderr) +                                    rebuild_widget(stdout, stderr) +                                    popup:move_next_to(mouse.current_widget_geometry) +                                end)                          end                      end)              ) @@ -276,7 +281,7 @@ local function worker(args)          call_now  = true,          autostart = true,          callback  = function() -            spawn.easy_async(string.format(UPDATE_EVENTS_CMD, username, CACHE_DIR), function(stdout, stderr) +            spawn.easy_async(string.format(UPDATE_EVENTS_CMD, username, CACHE_DIR), function(_, stderr)                  if stderr ~= '' then show_warning(stderr) return end              end)          end diff --git a/github-contributions-widget/github-contributions-widget.lua b/github-contributions-widget/github-contributions-widget.lua index b462299..5a45fcb 100644 --- a/github-contributions-widget/github-contributions-widget.lua +++ b/github-contributions-widget/github-contributions-widget.lua @@ -13,7 +13,8 @@ local naughty = require("naughty")  local wibox = require("wibox")  local widget_themes = require("awesome-wm-widgets.github-contributions-widget.themes") -local GET_CONTRIBUTIONS_CMD = [[bash -c "curl -s https://github-contributions.now.sh/api/v1/%s | jq -r '[.contributions[] | select ( .date | strptime(\"%%Y-%%m-%%d\") | mktime < now)][:%s]| .[].color'"]] +local GET_CONTRIBUTIONS_CMD = [[bash -c "curl -s https://github-contributions.now.sh/api/v1/%s]] +    .. [[ | jq -r '[.contributions[] | select ( .date | strptime(\"%%Y-%%m-%%d\") | mktime < now)][:%s]| .[].color'"]]  local github_contributions_widget = wibox.widget{      reflection = { @@ -30,9 +31,9 @@ local function show_warning(message)          text = message}  end -local function worker(args) +local function worker(user_args) -    local args = args or {} +    local args = user_args or {}      local username = args.username or 'streetturtle'      local days = args.days or 365 @@ -62,10 +63,10 @@ local function worker(args)          local r, g, b = hex2rgb(color)          return wibox.widget{ -            fit = function(self, context, width, height) +            fit = function()                  return 3, 3              end, -            draw = function(self, context, cr, width, height) +            draw = function(_, _, cr, _, _)                  cr:set_source_rgb(r/255, g/255, b/255)                  cr:rectangle(0, 0, with_border and 2 or 3, with_border and 2 or 3)                  cr:fill() @@ -77,11 +78,11 @@ local function worker(args)      local col = {layout = wibox.layout.fixed.vertical}      local row = {layout = wibox.layout.fixed.horizontal}      local a = 5 - os.date('%w') -    for i = 0, a do +    for _ = 0, a do          table.insert(col, get_square(color_of_empty_cells))      end -    local update_widget = function(widget, stdout, _, _, _) +    local update_widget = function(_, stdout, _, _, _)          for colors in stdout:gmatch("[^\r\n]+") do              if a%7 == 0 then                  table.insert(row, col) @@ -100,7 +101,7 @@ local function worker(args)      end      awful.spawn.easy_async(string.format(GET_CONTRIBUTIONS_CMD, username, days), -        function(stdout, stderr) +        function(stdout)              update_widget(github_contributions_widget, stdout)          end) diff --git a/gitlab-widget/gitlab.lua b/gitlab-widget/gitlab.lua index 3482347..2ab65b6 100644 --- a/gitlab-widget/gitlab.lua +++ b/gitlab-widget/gitlab.lua @@ -21,8 +21,9 @@ local color = require("gears.color")  local HOME_DIR = os.getenv("HOME")  local WIDGET_DIR = HOME_DIR .. '/.config/awesome/awesome-wm-widgets/gitlab-widget/' -local GET_PRS_CMD= [[bash -c "curl -s --connect-timeout 5 --show-error --header 'PRIVATE-TOKEN: %s' '%s/api/v4/merge_requests?state=opened'"]] -local DOWNLOAD_AVATAR_CMD = [[bash -c "curl -L --create-dirs -o %s/.cache/awmw/gitlab-widget/avatars/%s %s"]] +local GET_PRS_CMD= [[sh -c "curl -s --connect-timeout 5 --show-error --header 'PRIVATE-TOKEN: %s']] +    ..[[ '%s/api/v4/merge_requests?state=opened'"]] +local DOWNLOAD_AVATAR_CMD = [[sh -c "curl -L --create-dirs -o %s/.cache/awmw/gitlab-widget/avatars/%s %s"]]  local gitlab_widget = wibox.widget {      { @@ -33,7 +34,7 @@ local gitlab_widget = wibox.widget {              },              {                  id = 'error_marker', -                draw = function(self, context, cr, width, height) +                draw = function(_, _, cr, _, height)                      cr:set_source(color(beautiful.fg_urgent))                      cr:arc(height/4, height/4, height/4, 0, math.pi*2)                      cr:fill() @@ -96,7 +97,7 @@ local popup = awful.popup{  --- Converts string representation of date (2020-06-02T11:25:27Z) to date  local function parse_date(date_str)      local pattern = "(%d+)%-(%d+)%-(%d+)T(%d+):(%d+):(%d+)%Z" -    local y, m, d, h, min, sec, mil = date_str:match(pattern) +    local y, m, d, h, min, sec, _ = date_str:match(pattern)      return os.time{year = y, month = m, day = d, hour = h, min = min, sec = sec}  end @@ -134,9 +135,9 @@ local tooltip = awful.tooltip {      preferred_positions = {'bottom'},   } -local function worker(args) +local function worker(user_args) -    local args = args or {} +    local args = user_args or {}      local icon = args.icon or WIDGET_DIR .. '/icons/gitlab-icon.svg'      local api_token = args.api_token or show_warning('API Token is not set') @@ -318,7 +319,9 @@ local function worker(args)                          DOWNLOAD_AVATAR_CMD,                          HOME_DIR,                          pr.author.id, -                        pr.author.avatar_url), function() row:get_children_by_id('avatar')[1]:set_image(path_to_avatar) end) +                        pr.author.avatar_url), function() +                            row:get_children_by_id('avatar')[1]:set_image(path_to_avatar) +                        end)              end              row:connect_signal("mouse::enter", function(c) c:set_bg(beautiful.bg_focus) end) @@ -342,25 +345,24 @@ local function worker(args)              )              local old_cursor, old_wibox -            row:get_children_by_id('title')[1]:connect_signal("mouse::enter", function(c) +            row:get_children_by_id('title')[1]:connect_signal("mouse::enter", function()                  local wb = mouse.current_wibox                  old_cursor, old_wibox = wb.cursor, wb                  wb.cursor = "hand1"              end) -            row:get_children_by_id('title')[1]:connect_signal("mouse::leave", function(c) +            row:get_children_by_id('title')[1]:connect_signal("mouse::leave", function()                  if old_wibox then                      old_wibox.cursor = old_cursor                      old_wibox = nil                  end              end) -            local old_cursor, old_wibox -            row:get_children_by_id('avatar')[1]:connect_signal("mouse::enter", function(c) +            row:get_children_by_id('avatar')[1]:connect_signal("mouse::enter", function()                  local wb = mouse.current_wibox                  old_cursor, old_wibox = wb.cursor, wb                  wb.cursor = "hand1"              end) -            row:get_children_by_id('avatar')[1]:connect_signal("mouse::leave", function(c) +            row:get_children_by_id('avatar')[1]:connect_signal("mouse::leave", function()                  if old_wibox then                      old_wibox.cursor = old_cursor                      old_wibox = nil diff --git a/jira-widget/jira.lua b/jira-widget/jira.lua index 7f0ceb6..9a89a0d 100644 --- a/jira-widget/jira.lua +++ b/jira-widget/jira.lua @@ -17,12 +17,12 @@ local naughty = require("naughty")  local gears = require("gears")  local beautiful = require("beautiful")  local gfs = require("gears.filesystem") -local gs = require("gears.string")  local color = require("gears.color")  local HOME_DIR = os.getenv("HOME") -local GET_ISSUES_CMD = [[bash -c "curl -s --show-error -X GET -n '%s/rest/api/2/search?%s&fields=id,assignee,summary,status'"]] +local GET_ISSUES_CMD = +    [[bash -c "curl -s --show-error -X GET -n '%s/rest/api/2/search?%s&fields=id,assignee,summary,status'"]]  local DOWNLOAD_AVATAR_CMD = [[bash -c "curl -n --create-dirs -o  %s/.cache/awmw/jira-widget/avatars/%s %s"]]  local function show_warning(message) @@ -41,7 +41,7 @@ local jira_widget = wibox.widget {              },              {                  id = 'd', -                draw = function(self, context, cr, width, height) +                draw = function(_, _, cr, _, height)                      cr:set_source(color(beautiful.fg_urgent))                      cr:arc(height/4, height/4, height/4, 0, math.pi*2)                      cr:fill() @@ -100,9 +100,9 @@ local tooltip = awful.tooltip {      preferred_positions = {'bottom'},   } -local function worker(args) +local function worker(user_args) -    local args = args or {} +    local args = user_args or {}      local icon = args.icon or HOME_DIR .. '/.config/awesome/awesome-wm-widgets/jira-widget/jira-mark-gradient-blue.svg'      local host = args.host or show_warning('Jira host is unknown') @@ -149,7 +149,7 @@ local function worker(args)          for i = 0, #rows do rows[i]=nil end          for _, issue in ipairs(result.issues) do -            local path_to_avatar = os.getenv("HOME") ..'/.cache/awmw/jira-widget/avatars/' .. issue.fields.assignee.accountId +            local path_to_avatar = HOME_DIR ..'/.cache/awmw/jira-widget/avatars/' .. issue.fields.assignee.accountId              if not gfs.file_readable(path_to_avatar) then                  spawn.easy_async(string.format( diff --git a/logout-widget/logout.lua b/logout-widget/logout.lua index 9fcc9fe..512ac23 100644 --- a/logout-widget/logout.lua +++ b/logout-widget/logout.lua @@ -54,8 +54,8 @@ local function create_button(icon_name, action_name, color, onclick, icon_size,              capi.keygrabber.stop()          end      } -    button:connect_signal("mouse::enter", function(c) action:set_text(action_name) end) -    button:connect_signal("mouse::leave", function(c) action:set_text(' ') end) +    button:connect_signal("mouse::enter", function() action:set_text(action_name) end) +    button:connect_signal("mouse::leave", function() action:set_text(' ') end)      return button  end @@ -76,7 +76,8 @@ local function launch(args)      w:set_bg(bg_color)      if #phrases > 0 then -        phrase_widget:set_markup('<span color="'.. text_color .. '" size="20000">' .. phrases[ math.random( #phrases ) ] .. '</span>') +        phrase_widget:set_markup( +            '<span color="'.. text_color .. '" size="20000">' .. phrases[ math.random( #phrases ) ] .. '</span>')      end      w:setup { diff --git a/mpdarc-widget/mpdarc.lua b/mpdarc-widget/mpdarc.lua index d70e6ee..f1d6930 100644 --- a/mpdarc-widget/mpdarc.lua +++ b/mpdarc-widget/mpdarc.lua @@ -25,7 +25,7 @@ local PAUSE_ICON_NAME = PATH_TO_ICONS .. "/actions/24/player_pause.png"  local PLAY_ICON_NAME = PATH_TO_ICONS .. "/actions/24/player_play.png"  local STOP_ICON_NAME = PATH_TO_ICONS .. "/actions/24/player_stop.png" -local icon = wibox.widget {  +local icon = wibox.widget {          id = "icon",          widget = wibox.widget.imagebox,          image = PLAY_ICON_NAME @@ -58,7 +58,7 @@ local update_graphic = function(widget, stdout, _, _, _)      stdout = string.gsub(stdout, "\n", "")      local mpdpercent = string.match(stdout, "(%d%d)%%")      local mpdstatus = string.match(stdout, "%[(%a+)%]") -    if mpdstatus == "playing" then  +    if mpdstatus == "playing" then        icon.image = PLAY_ICON_NAME        widget.colors = { beautiful.widget_main_color }        widget.value = tonumber((100-mpdpercent)/100) @@ -93,7 +93,7 @@ mpdarc:connect_signal("button::press", function(_, _, _, button)  end)  local notification -function show_MPD_status() +local function show_MPD_status()      spawn.easy_async(GET_MPD_CMD,          function(stdout, _, _, _)              notification = naughty.notify { diff --git a/mpris-widget/init.lua b/mpris-widget/init.lua index 5af85b4..4651b45 100644 --- a/mpris-widget/init.lua +++ b/mpris-widget/init.lua @@ -29,7 +29,7 @@ local LIBRARY_ICON_NAME = PATH_TO_ICONS .. "/actions/24/music-library.png"  local mpdarc_widget = {} -local function worker(args) +local function worker()      -- retriving song info      local current_song, artist, mpdstatus, art, artUrl @@ -123,7 +123,7 @@ local function worker(args)      local notification      local function show_MPD_status() -        spawn.easy_async(GET_MPD_CMD, function(stdout, _, _, _) +        spawn.easy_async(GET_MPD_CMD, function()              notification = naughty.notification {                  margin = 10,                  timeout = 5, diff --git a/net-speed-widget/net-speed.lua b/net-speed-widget/net-speed.lua index 846898c..409e03d 100644 --- a/net-speed-widget/net-speed.lua +++ b/net-speed-widget/net-speed.lua @@ -8,7 +8,6 @@  -- @copyright 2020 Pavel Makhov  ------------------------------------------------- -local naughty = require("naughty")  local watch = require("awful.widget.watch")  local wibox = require("wibox") @@ -16,14 +15,6 @@ local HOME_DIR = os.getenv("HOME")  local WIDGET_DIR = HOME_DIR .. '/.config/awesome/awesome-wm-widgets/net-speed-widget/'  local ICONS_DIR = WIDGET_DIR .. 'icons/' -local function show_warning(message) -    naughty.notify { -        preset = naughty.config.presets.critical, -        title = 'Net Speed Widget', -        text = message -    } -end -  local net_speed_widget = wibox.widget {      {          id = 'rx_speed', @@ -91,21 +82,21 @@ local function split(string_to_split, separator)      return t  end -local function worker(args) +local function worker(user_args) -    local args = args or {} +    local args = user_args or {}      local interface = args.interface or '*'      local timeout = args.timeout or 1 -    local update_widget = function(widget, stdout, stderr) +    local update_widget = function(widget, stdout)          local cur_vals = split(stdout, '\r\n')          local cur_rx = 0          local cur_tx = 0 -        for i, v in ipairs(cur_vals) do +        for i, _ in ipairs(cur_vals) do              if i%2 == 1 then cur_rx = cur_rx + cur_vals[i] end              if i%2 == 0 then cur_tx = cur_tx + cur_vals[i] end          end @@ -120,7 +111,8 @@ local function worker(args)          prev_tx = cur_tx      end -    watch(string.format([[bash -c "cat /sys/class/net/%s/statistics/*_bytes"]], interface), timeout, update_widget, net_speed_widget) +    watch(string.format([[bash -c "cat /sys/class/net/%s/statistics/*_bytes"]], interface), +        timeout, update_widget, net_speed_widget)      return net_speed_widget diff --git a/pomodoroarc-widget/pomodoroarc.lua b/pomodoroarc-widget/pomodoroarc.lua index dab8c3a..497a208 100644 --- a/pomodoroarc-widget/pomodoroarc.lua +++ b/pomodoroarc-widget/pomodoroarc.lua @@ -92,7 +92,7 @@ text.font      = "Inconsolata Medium 13"            widget.value = tonumber(pomodoro/(25*60))  text.font      = "Inconsolata Medium 13"            text.text = "PW" -        elseif workbreak == "B" then  +        elseif workbreak == "B" then            widget.colors = { beautiful.widget_yellow }            widget.value = tonumber(pomodoro/(5*60))  text.font      = "Inconsolata Medium 13" @@ -114,7 +114,7 @@ pomodoroarc:connect_signal("button::press", function(_, _, _, button)  end)  local notification -function show_pomodoro_status() +local function show_pomodoro_status()      spawn.easy_async(GET_pomodoro_CMD,          function(stdout, _, _, _)              notification = naughty.notify { diff --git a/ram-widget/ram-widget.lua b/ram-widget/ram-widget.lua index 66863f5..3ef5d6b 100644 --- a/ram-widget/ram-widget.lua +++ b/ram-widget/ram-widget.lua @@ -8,8 +8,8 @@ local wibox = require("wibox")  local ramgraph_widget = {} -local function worker(args) -    local args = args or {} +local function worker(user_args) +    local args = user_args or {}      local timeout = args.timeout or 1      --- Main ram widget shown on wibar @@ -43,6 +43,7 @@ local function worker(args)         offset = { y = 5 },      } +    --luacheck:ignore 231      local total, used, free, shared, buff_cache, available, total_swap, used_swap, free_swap      local function getPercentage(value) @@ -50,7 +51,7 @@ local function worker(args)      end      watch('bash -c "LANGUAGE=en_US.UTF-8 free | grep -z Mem.*Swap.*"', timeout, -        function(widget, stdout, stderr, exitreason, exitcode) +        function(widget, stdout)              total, used, free, shared, buff_cache, available, total_swap, used_swap, free_swap =                  stdout:match('(%d+)%s*(%d+)%s*(%d+)%s*(%d+)%s*(%d+)%s*(%d+)%s*Swap:%s*(%d+)%s*(%d+)%s*(%d+)') @@ -75,7 +76,7 @@ local function worker(args)                      {'free ' .. getPercentage(free + free_swap), free + free_swap},                      {'buff_cache ' .. getPercentage(buff_cache), buff_cache}                  } -                 +                  if popup.visible then                     popup.visible = not popup.visible                  else diff --git a/rhythmbox-widget/rhythmbox.lua b/rhythmbox-widget/rhythmbox.lua deleted file mode 100644 index 1287587..0000000 --- a/rhythmbox-widget/rhythmbox.lua +++ /dev/null @@ -1,16 +0,0 @@ -local wibox = require("wibox") -local awful = require("awful") -local watch = require("awful.widget.watch") - -rhythmbox_widget = wibox.widget.textbox() -rhythmbox_widget:set_font('Play 9') - -rhythmbox_icon = wibox.widget.imagebox() -rhythmbox_icon:set_image("/usr/share/icons/Arc/devices/22/audio-speakers.png") - -watch( -    "rhythmbox-client --no-start --print-playing", 1, -    function(widget, stdout, stderr, exitreason, exitcode) -        rhythmbox_widget:set_text(stdout) -    end -)
\ No newline at end of file diff --git a/run-shell-3/run-shell.lua b/run-shell-3/run-shell.lua index 9bd575b..0015232 100644 --- a/run-shell-3/run-shell.lua +++ b/run-shell-3/run-shell.lua @@ -8,10 +8,6 @@  -- @copyright 2019 Pavel Makhov  ------------------------------------------------- -local capi = { -    screen = screen, -    client = client, -}  local awful = require("awful")  local gfs = require("gears.filesystem")  local wibox = require("wibox") @@ -26,8 +22,10 @@ local widget = {}  function widget.new()      local widget_instance = {          _cached_wiboxes = {}, -        _cmd_pixelate = [[bash -c 'ffmpeg -loglevel panic -f x11grab -video_size 1920x1060 -y -i :0.0+%s,20 -vf frei0r=pixeliz0r -vframes 1 /tmp/i3lock-%s.png ; echo done']], -        _cmd_blur = [[bash -c 'ffmpeg -loglevel panic -f x11grab -video_size 1920x1060 -y -i :0.0+%s,20 -filter_complex "boxblur=9" -vframes 1 /tmp/i3lock-%s.png ; echo done']] +        _cmd_pixelate = [[sh -c 'ffmpeg -loglevel panic -f x11grab -video_size 1920x1060 -y -i :0.0+%s,20 -vf ]] +            .. [[frei0r=pixeliz0r -vframes 1 /tmp/i3lock-%s.png ; echo done']], +        _cmd_blur = [[sh -c 'ffmpeg -loglevel panic -f x11grab -video_size 1920x1060 -y -i :0.0+%s,20 ]] +            .. [[-filter_complex "boxblur=9" -vframes 1 /tmp/i3lock-%s.png ; echo done']]      }      function widget_instance:_create_wibox() @@ -74,22 +72,19 @@ function widget.new()          return w      end -    function widget_instance:launch(s, c) -        c = c or capi.client.focus -        s = mouse.screen -        --        naughty.notify { text = 'screen ' .. s.index } +    function widget_instance:launch() +        local s = mouse.screen          if not self._cached_wiboxes[s] then              self._cached_wiboxes[s] = {} -            --            naughty.notify { text = 'nope' }          end          if not self._cached_wiboxes[s][1] then              self._cached_wiboxes[s][1] = self:_create_wibox() -            --            naughty.notify { text = 'nope' }          end          local w = self._cached_wiboxes[s][1]          local rnd = math.random() -        awful.spawn.with_line_callback(string.format(self._cmd_blur, tostring(awful.screen.focused().geometry.x), rnd), { -            stdout = function(line) +        awful.spawn.with_line_callback( +            string.format(self._cmd_blur, tostring(awful.screen.focused().geometry.x), rnd), { +            stdout = function()                  w.visible = true                  w.bgimage = '/tmp/i3lock-' .. rnd ..'.png'                  awful.placement.top(w, { margins = { top = 20 }, parent = awful.screen.focused() }) diff --git a/run-shell/run-shell.lua b/run-shell/run-shell.lua index 2fda71b..a43c4d5 100644 --- a/run-shell/run-shell.lua +++ b/run-shell/run-shell.lua @@ -45,6 +45,7 @@ function widget.new()              widget = wibox.widget.imagebox,              resize = false,              opacity = 0.2, +            --luacheck:ignore 432              set_hover = function(self, opacity)                  self.opacity = opacity                  self.image = '/usr/share/icons/Arc/actions/symbolic/system-shutdown-symbolic.svg' diff --git a/spotify-widget/spotify.lua b/spotify-widget/spotify.lua index fb903e8..bd2309f 100644 --- a/spotify-widget/spotify.lua +++ b/spotify-widget/spotify.lua @@ -11,7 +11,6 @@  local awful = require("awful")  local wibox = require("wibox")  local watch = require("awful.widget.watch") -local naughty = require("naughty")  local GET_SPOTIFY_STATUS_CMD = 'sp status'  local GET_CURRENT_SONG_CMD = 'sp current' @@ -24,9 +23,9 @@ end  local spotify_widget = {} -local function worker(args) +local function worker(user_args) -    local args = args or {} +    local args = user_args or {}      local play_icon = args.play_icon or '/usr/share/icons/Arc/actions/24/player_play.png'      local pause_icon = args.pause_icon or '/usr/share/icons/Arc/actions/24/player_pause.png' @@ -100,7 +99,7 @@ local function worker(args)          end          local escaped = string.gsub(stdout, "&", '&') -        local album, album_artist, artist, title = +        local album, _, artist, title =              string.match(escaped, 'Album%s*(.*)\nAlbumArtist%s*(.*)\nArtist%s*(.*)\nTitle%s*(.*)\n')          if album ~= nil and title ~=nil and artist ~= nil then diff --git a/stackoverflow-widget/stackoverflow.lua b/stackoverflow-widget/stackoverflow.lua index af89105..15d2837 100644 --- a/stackoverflow-widget/stackoverflow.lua +++ b/stackoverflow-widget/stackoverflow.lua @@ -18,13 +18,15 @@ local beautiful = require("beautiful")  local HOME_DIR = os.getenv("HOME") -local GET_QUESTIONS_CMD = [[bash -c "curl --compressed -s -X GET 'http://api.stackexchange.com/2.2/questions/no-answers?page=1&pagesize=%s&order=desc&sort=activity&tagged=%s&site=stackoverflow'"]] +local GET_QUESTIONS_CMD = [[bash -c "curl --compressed -s -X GET]] +    .. [[ 'http://api.stackexchange.com/2.2/questions/no-answers]] +    .. [[?page=1&pagesize=%s&order=desc&sort=activity&tagged=%s&site=stackoverflow'"]]  local stackoverflow_widget = {} -local function worker(args) +local function worker(user_args) -    local args = args or {} +    local args = user_args or {}      local icon = args.icon or HOME_DIR .. '/.config/awesome/awesome-wm-widgets/stackoverflow-widget/so-icon.svg'      local limit = args.limit or 5 @@ -43,7 +45,7 @@ local function worker(args)          border_width = 1,          border_color = beautiful.bg_focus,          maximum_width = 400, -        preferred_positions = top, +        preferred_positions = 'top',          offset = { y = 5 },          widget = {}      } @@ -63,7 +65,7 @@ local function worker(args)          end,      } -    local update_widget = function(widget, stdout, stderr, _, _) +    local update_widget = function(_, stdout, _, _, _)          local result = json.decode(stdout) @@ -91,7 +93,7 @@ local function worker(args)                  widget = wibox.container.background              } -            row:connect_signal("button::release", function(_, _, _, button) +            row:connect_signal("button::release", function()                  spawn.with_shell("xdg-open " .. item.link)                  popup.visible = false              end) diff --git a/todo-widget/todo.lua b/todo-widget/todo.lua index 71484b2..74b3d1b 100644 --- a/todo-widget/todo.lua +++ b/todo-widget/todo.lua @@ -11,7 +11,6 @@ local awful = require("awful")  local wibox = require("wibox")  local json = require("json")  local spawn = require("awful.spawn") -local naughty = require("naughty")  local gears = require("gears")  local beautiful = require("beautiful")  local gfs = require("gears.filesystem") @@ -24,7 +23,7 @@ local GET_TODO_ITEMS = 'bash -c "cat ' .. STORAGE .. '"'  local rows  = { layout = wibox.layout.fixed.vertical }  local todo_widget = {} - +local update_widget  todo_widget.widget = wibox.widget {      {          { @@ -89,7 +88,7 @@ local add_button = wibox.widget {      widget = wibox.container.background  } -add_button:connect_signal("button::press", function(c) +add_button:connect_signal("button::press", function()      local pr = awful.widget.prompt()      table.insert(rows, wibox.widget { @@ -116,7 +115,7 @@ add_button:connect_signal("button::press", function(c)                  local res = json.decode(stdout)                  table.insert(res.todo_items, {todo_item = input_text, status = false})                  spawn.easy_async_with_shell("echo '" .. json.encode(res) .. "' > " .. STORAGE, function() -                    spawn.easy_async(GET_TODO_ITEMS, function(stdout) update_widget(stdout) end) +                    spawn.easy_async(GET_TODO_ITEMS, function(items) update_widget(items) end)                  end)              end)          end @@ -126,9 +125,9 @@ end)  add_button:connect_signal("mouse::enter", function(c) c:set_bg(beautiful.bg_focus) end)  add_button:connect_signal("mouse::leave", function(c) c:set_bg(beautiful.bg_normal) end) -local function worker(args) +local function worker(user_args) -    local args = args or {} +    local args = user_args or {}      local icon = args.icon or WIDGET_DIR .. '/checkbox-checked-symbolic.svg' @@ -200,10 +199,10 @@ local function worker(args)                  widget = wibox.container.background              } -            trash_button:connect_signal("button::press", function(c) +            trash_button:connect_signal("button::press", function()                  table.remove(result.todo_items, i)                  spawn.easy_async_with_shell("printf '" .. json.encode(result) .. "' > " .. STORAGE, function () -                    spawn.easy_async(GET_TODO_ITEMS, function(stdout) update_widget(stdout) end) +                    spawn.easy_async(GET_TODO_ITEMS, function(items) update_widget(items) end)                  end)              end) @@ -214,12 +213,12 @@ local function worker(args)                  widget = wibox.widget.imagebox              } -            move_up:connect_signal("button::press", function(c) +            move_up:connect_signal("button::press", function()                  local temp = result.todo_items[i]                  result.todo_items[i] = result.todo_items[i-1]                  result.todo_items[i-1] = temp                  spawn.easy_async_with_shell("printf '" .. json.encode(result) .. "' > " .. STORAGE, function () -                    spawn.easy_async(GET_TODO_ITEMS, function(stdout) update_widget(stdout) end) +                    spawn.easy_async(GET_TODO_ITEMS, function(items) update_widget(items) end)                  end)              end) @@ -229,12 +228,12 @@ local function worker(args)                  widget = wibox.widget.imagebox              } -            move_down:connect_signal("button::press", function(c) +            move_down:connect_signal("button::press", function()                  local temp = result.todo_items[i]                  result.todo_items[i] = result.todo_items[i+1]                  result.todo_items[i+1] = temp                  spawn.easy_async_with_shell("printf '" .. json.encode(result) .. "' > " .. STORAGE, function () -                    spawn.easy_async(GET_TODO_ITEMS, function(stdout) update_widget(stdout) end) +                    spawn.easy_async(GET_TODO_ITEMS, function(items) update_widget(items) end)                  end)              end) @@ -243,13 +242,11 @@ local function worker(args)                  layout = wibox.layout.fixed.vertical              } -            if 1 == #result.todo_items then -                -- one item, no need in arrows -            elseif i == 1 then +            if i == 1 and #result.todo_items > 1 then                  table.insert(move_buttons, move_down) -            elseif i == #result.todo_items then +            elseif i == #result.todo_items and #result.todo_items > 1 then                  table.insert(move_buttons, move_up) -            else +            elseif #result.todo_items > 1 then                  table.insert(move_buttons, move_up)                  table.insert(move_buttons, move_down)              end @@ -322,7 +319,8 @@ local function worker(args)  end  if not gfs.file_readable(STORAGE) then -    spawn.easy_async(string.format([[bash -c "dirname %s | xargs mkdir -p && echo '{\"todo_items\":{}}' > %s"]], STORAGE, STORAGE)) +    spawn.easy_async(string.format([[bash -c "dirname %s | xargs mkdir -p && echo '{\"todo_items\":{}}' > %s"]], +    STORAGE, STORAGE))  end  return setmetatable(todo_widget, { __call = function(_, ...) return worker(...) end }) diff --git a/translate-widget/translate.lua b/translate-widget/translate.lua index 9352ac9..1499333 100644 --- a/translate-widget/translate.lua +++ b/translate-widget/translate.lua @@ -16,7 +16,8 @@ local wibox = require("wibox")  local gears = require("gears")  local gfs = require("gears.filesystem") -local TRANSLATE_CMD = [[bash -c 'curl -s -u "apikey:%s" -H "Content-Type: application/json" -d '\''{"text": ["%s"], "model_id":"%s"}'\'' "%s/v3/translate?version=2018-05-01"']] +local TRANSLATE_CMD = [[bash -c 'curl -s -u "apikey:%s" -H "Content-Type: application/json"]] +    ..[[ -d '\''{"text": ["%s"], "model_id":"%s"}'\'' "%s/v3/translate?version=2018-05-01"']]  local ICON = os.getenv("HOME") .. '/.config/awesome/awesome-wm-widgets/translate-widget/gnome-translate.svg'  --- Returns two values - string to translate and direction: @@ -82,12 +83,14 @@ local function translate(to_translate, lang, api_key, url)                      {                          {                              id = 'src', -                            markup = '<b>' .. lang:sub(1,2) .. '</b>: <span color="#FFFFFF"> ' .. to_translate .. '</span>', +                            markup = '<b>' .. lang:sub(1,2) .. '</b>: <span color="#FFFFFF"> ' +                                .. to_translate .. '</span>',                              widget = wibox.widget.textbox                          },                          {                              id = 'res', -                            markup = '<b>' .. lang:sub(4) .. '</b>: <span color="#FFFFFF"> ' .. resp.translations[1].translation .. '</span>', +                            markup = '<b>' .. lang:sub(4) .. '</b>: <span color="#FFFFFF"> ' +                                .. resp.translations[1].translation .. '</span>',                              widget = wibox.widget.textbox                          },                          id = 'text', @@ -110,11 +113,11 @@ local function translate(to_translate, lang, api_key, url)          w:buttons(              awful.util.table.join(                  awful.button({}, 1, function() -                    awful.spawn.with_shell("echo '" .. resp.translations[1].translation .. "' | xclip -selection clipboard") +                    spawn.with_shell("echo '" .. resp.translations[1].translation .. "' | xclip -selection clipboard")                      w.visible = false                  end),                  awful.button({}, 3, function() -                    awful.spawn.with_shell("echo '" .. to_translate .."' | xclip -selection clipboard") +                    spawn.with_shell("echo '" .. to_translate .."' | xclip -selection clipboard")                      w.visible = false                  end)              ) @@ -159,9 +162,9 @@ input_widget:setup{      widget = wibox.container.margin  } -local function launch(args) +local function launch(user_args) -    local args = args or {} +    local args = user_args or {}      local api_key = args.api_key      local url = args.url diff --git a/volume-widget/volume.lua b/volume-widget/volume.lua index 0e13f38..cb8c21d 100644 --- a/volume-widget/volume.lua +++ b/volume-widget/volume.lua @@ -9,7 +9,6 @@  -------------------------------------------------  local wibox = require("wibox") -local watch = require("awful.widget.watch")  local spawn = require("awful.spawn")  local naughty = require("naughty")  local gfs = require("gears.filesystem") @@ -19,7 +18,13 @@ local PATH_TO_ICONS = "/usr/share/icons/Arc/status/symbolic/"  local volume_icon_name="audio-volume-high-symbolic"  local GET_VOLUME_CMD = 'amixer sget Master' -local volume = {device = '', display_notification = false, display_notification_onClick = true, notification = nil, delta = 5} +local volume = { +    device = '', +    display_notification = false, +    display_notification_onClick = true, +    notification = nil, +    delta = 5 +}  function volume:toggle()      volume:_cmd('amixer ' .. volume.device .. ' sset Master toggle') @@ -88,9 +93,9 @@ end  --}}} -local function worker(args) +local function worker(user_args)  --{{{ Args -    local args = args or {} +    local args = user_args or {}      local volume_audio_controller = args.volume_audio_controller or 'pulse'      volume.display_notification = args.display_notification or false @@ -120,7 +125,8 @@ local function worker(args)              resize = false,              widget = wibox.widget.imagebox,          }, -        layout = wibox.container.margin(_, _, _, 3), +        margins = 3, +        layout = wibox.container.margin,          set_image = function(self, path)              self.icon.image = path          end @@ -136,7 +142,7 @@ local function worker(args)      local function show()          spawn.easy_async(GET_VOLUME_CMD, function(stdout, _, _, _) -            txt = parse_output(stdout) +            local txt = parse_output(stdout)              notif(txt, true)          end          ) @@ -165,7 +171,7 @@ local function worker(args)  --}}}  --{{{ Set initial icon -    spawn.easy_async(GET_VOLUME_CMD, function(stdout, stderr, exitreason, exitcode) +    spawn.easy_async(GET_VOLUME_CMD, function(stdout)          parse_output(stdout)          volume.widget.image = PATH_TO_ICONS .. volume_icon_name .. ".svg"      end) diff --git a/volumearc-widget/volumearc.lua b/volumearc-widget/volumearc.lua index 91ae763..323a750 100644 --- a/volumearc-widget/volumearc.lua +++ b/volumearc-widget/volumearc.lua @@ -23,9 +23,9 @@ local PATH_TO_ICON = "/usr/share/icons/Arc/status/symbolic/audio-volume-muted-sy  local widget = {} -local function worker(args) +local function worker(user_args) -    local args = args or {} +    local args = user_args or {}      local main_color = args.main_color or beautiful.fg_color      local bg_color = args.bg_color or '#ffffff11' @@ -59,7 +59,7 @@ local function worker(args)          widget = wibox.container.arcchart      } -    local update_graphic = function(widget, stdout, _, _, _) +    local update_graphic = function(_, stdout, _, _, _)          local mute = string.match(stdout, "%[(o%D%D?)%]")   -- \[(o\D\D?)\] - [on] or [off]          local volume = string.match(stdout, "(%d?%d?%d)%%") -- (\d?\d?\d)\%)          volume = tonumber(string.format("% 3d", volume)) diff --git a/volumebar-widget/volumebar.lua b/volumebar-widget/volumebar.lua index 19238de..e7ee64d 100644 --- a/volumebar-widget/volumebar.lua +++ b/volumebar-widget/volumebar.lua @@ -22,9 +22,9 @@ local TOG_VOLUME_CMD = 'amixer -D pulse sset Master toggle'  local widget = {} -local function worker(args) +local function worker(user_args) -    local args = args or {} +    local args = user_args or {}      local main_color = args.main_color or beautiful.fg_normal      local mute_color = args.mute_color or beautiful.fg_urgent @@ -52,7 +52,7 @@ local function worker(args)          widget = wibox.widget.progressbar      } -    local update_graphic = function(widget, stdout, _, _, _) +    local update_graphic = function(_, stdout, _, _, _)          local mute = string.match(stdout, "%[(o%D%D?)%]")    -- \[(o\D\D?)\] - [on] or [off]          local volume = string.match(stdout, "(%d?%d?%d)%%")  -- (\d?\d?\d)\%)          volume = tonumber(string.format("% 3d", volume)) diff --git a/weather-widget/weather.lua b/weather-widget/weather.lua index 0317746..e58efb1 100644 --- a/weather-widget/weather.lua +++ b/weather-widget/weather.lua @@ -27,7 +27,6 @@ end  local weather_widget = {}  local warning_shown = false -local notification  local tooltip = awful.tooltip {      mode = 'outside',      preferred_positions = {'bottom'} @@ -115,9 +114,9 @@ local function uvi_index_color(uvi)      return '<span weight="bold" foreground="' .. color .. '">' .. uvi .. '</span>'  end -local function worker(args) +local function worker(user_args) -    local args = args or {} +    local args = user_args or {}      --- Validate required parameters      if args.coordinates == nil or args.api_key == nil then @@ -139,6 +138,7 @@ local function worker(args)      local icons_extension = args.icons_extension or '.png'      local timeout = args.timeout or 120 +    local ICONS_DIR = WIDGET_DIR .. '/icons/' .. icon_pack_name .. '/'      local owm_one_cal_api =          ('https://api.openweathermap.org/data/2.5/onecall' ..              '?lat=' .. coordinates[1] .. '&lon=' .. coordinates[2] .. '&appid=' .. api_key .. @@ -241,11 +241,14 @@ local function worker(args)          forced_width = 300,          layout = wibox.layout.flex.horizontal,          update = function(self, weather) -            self:get_children_by_id('icon')[1]:set_image(WIDGET_DIR .. '/icons/' .. icon_pack_name .. '/' .. icon_map[weather.weather[1].icon] .. icons_extension) +            self:get_children_by_id('icon')[1]:set_image( +                ICONS_DIR .. icon_map[weather.weather[1].icon] .. icons_extension)              self:get_children_by_id('temp')[1]:set_text(gen_temperature_str(weather.temp, '%.0f', false, units)) -            self:get_children_by_id('feels_like_temp')[1]:set_text('Feels like ' .. gen_temperature_str(weather.feels_like, '%.0f', false, units)) +            self:get_children_by_id('feels_like_temp')[1]:set_text( +                'Feels like ' .. gen_temperature_str(weather.feels_like, '%.0f', false, units))              self:get_children_by_id('description')[1]:set_text(weather.weather[1].description) -            self:get_children_by_id('wind')[1]:set_markup('Wind: <b>' .. weather.wind_speed .. 'm/s (' .. to_direction(weather.wind_deg) .. ')</b>') +            self:get_children_by_id('wind')[1]:set_markup( +                'Wind: <b>' .. weather.wind_speed .. 'm/s (' .. to_direction(weather.wind_deg) .. ')</b>')              self:get_children_by_id('humidity')[1]:set_markup('Humidity: <b>' .. weather.humidity .. '%</b>')              self:get_children_by_id('uv')[1]:set_markup('UV: ' .. uvi_index_color(weather.uvi))          end @@ -270,7 +273,7 @@ local function worker(args)                      {                          {                              { -                                image = WIDGET_DIR .. '/icons/' .. icon_pack_name .. '/' .. icon_map[day.weather[1].icon] .. icons_extension, +                                image = ICONS_DIR .. icon_map[day.weather[1].icon] .. icons_extension,                                  resize = true,                                  forced_width = 48,                                  forced_height = 48, @@ -384,7 +387,7 @@ local function worker(args)              hourly_forecast_negative_graph:set_max_value(math.abs(min_temp))              hourly_forecast_negative_graph:set_min_value(max_temp < 0 and math.abs(max_temp) * 0.7 or 0) -            for i, value in ipairs(values) do +            for _, value in ipairs(values) do                  if value >= 0 then                      hourly_forecast_graph:add_value(value)                      hourly_forecast_negative_graph:add_value(0) @@ -470,12 +473,9 @@ local function worker(args)      local function update_widget(widget, stdout, stderr)          if stderr ~= '' then              if not warning_shown then -                if ( -                    stderr ~= 'curl: (52) Empty reply from server' and -                    stderr ~= 'curl: (28) Failed to connect to api.openweathermap.org port 443: Connection timed out' and -                    stderr:find( -                        '^curl: %(18%) transfer closed with %d+ bytes remaining to read$' -                    ) ~= nil +                if (stderr ~= 'curl: (52) Empty reply from server' +                and stderr ~= 'curl: (28) Failed to connect to api.openweathermap.org port 443: Connection timed out' +                and stderr:find('^curl: %(18%) transfer closed with %d+ bytes remaining to read$') ~= nil                  ) then                      show_warning(stderr)                  end @@ -494,7 +494,7 @@ local function worker(args)          local result = json.decode(stdout) -        widget:set_image(WIDGET_DIR .. '/icons/' .. icon_pack_name .. '/' .. icon_map[result.current.weather[1].icon] .. icons_extension) +        widget:set_image(ICONS_DIR .. icon_map[result.current.weather[1].icon] .. icons_extension)          widget:set_text(gen_temperature_str(result.current.temp, '%.0f', both_units_widget, units))          current_weather_widget:update(result.current) diff --git a/word-clock-widget/word-clock.lua b/word-clock-widget/word-clock.lua index fc4a5b5..12d5d83 100644 --- a/word-clock-widget/word-clock.lua +++ b/word-clock-widget/word-clock.lua @@ -55,9 +55,9 @@ end  local text_clock = {} -local function worker(args) +local function worker(user_args) -    local args = args or {} +    local args = user_args or {}      local main_color = args.main_color or beautiful.fg_normal      local accent_color = args.accent_color or beautiful.fg_urgent @@ -81,7 +81,10 @@ local function worker(args)              local t = split(time)              local res = ''              for i, v in ipairs(t) do -                res = res .. '<span color="' .. ((i % 2 == 0) and accent_color or main_color) .. '">' .. v .. '</span>' .. (with_spaces and ' ' or '') +                res = res .. '<span color="' +                .. ((i % 2 == 0) and accent_color or main_color) +                .. '">' .. v .. '</span>' +                .. (with_spaces and ' ' or '')              end              self:get_children_by_id('clock')[1]:set_markup(res)          end  | 
