From 862967089f80d443c914d83a80f5e51884ae6ad0 Mon Sep 17 00:00:00 2001 From: ndwarshuis Date: Sun, 18 Jul 2021 00:06:49 -0400 Subject: [PATCH] REF make pacman and system modules look pretty --- drawing/Pacman.lua | 76 ++++++++++++++++++++++------------------------ drawing/System.lua | 75 ++++++++++++++++++++++----------------------- 2 files changed, 74 insertions(+), 77 deletions(-) diff --git a/drawing/Pacman.lua b/drawing/Pacman.lua index ed9da1f..433656d 100644 --- a/drawing/Pacman.lua +++ b/drawing/Pacman.lua @@ -1,53 +1,51 @@ local Common = require 'Common' local Geometry = require 'Geometry' -local __string_match = string.match -local __string_gmatch = string.gmatch +return function() + local TEXT_SPACING = 20 -local _TEXT_SPACING_ = 20 + local __string_match = string.match + local __string_gmatch = string.gmatch -local header = Common.Header( - Geometry.RIGHT_X, - Geometry.TOP_Y, - Geometry.SECTION_WIDTH, - 'PACMAN' -) + local header = Common.Header( + Geometry.RIGHT_X, + Geometry.TOP_Y, + Geometry.SECTION_WIDTH, + 'PACMAN' + ) -local rows = Common.initTextRows( - Geometry.RIGHT_X, - header.bottom_y, - Geometry.SECTION_WIDTH, - _TEXT_SPACING_, - {'Total', 'Explicit', 'Outdated', 'Orphaned', 'Local'} -) + local rows = Common.initTextRows( + Geometry.RIGHT_X, + header.bottom_y, + Geometry.SECTION_WIDTH, + TEXT_SPACING, + {'Total', 'Explicit', 'Outdated', 'Orphaned', 'Local'} + ) -_TEXT_SPACING_ = nil - -local update = function(cr, pacman_stats) - local stats = __string_match(pacman_stats, '%d+%s+[^%s]+%s+[^%s]+%s+(.*)$') - if stats then - local i = 1 - for v in __string_gmatch(stats, '%d+') do - Common.text_rows_set(rows, cr, i, v) - i = i + 1 - end - else - for i=1, 5 do - Common.text_rows_set(rows, cr, i, 'N/A') + local update = function(cr, pacman_stats) + local stats = __string_match(pacman_stats, '%d+%s+[^%s]+%s+[^%s]+%s+(.*)$') + if stats then + local i = 1 + for v in __string_gmatch(stats, '%d+') do + Common.text_rows_set(rows, cr, i, v) + i = i + 1 + end + else + for i=1, 5 do + Common.text_rows_set(rows, cr, i, 'N/A') + end end end -end -local draw_static = function(cr) - Common.drawHeader(cr, header) - Common.text_rows_draw_static(rows, cr) -end + local draw_static = function(cr) + Common.drawHeader(cr, header) + Common.text_rows_draw_static(rows, cr) + end -local draw_dynamic = function(cr, pacman_stats) - update(cr, pacman_stats) - Common.text_rows_draw_dynamic(rows, cr) -end + local draw_dynamic = function(cr, pacman_stats) + update(cr, pacman_stats) + Common.text_rows_draw_dynamic(rows, cr) + end -return function() return {static = draw_static, dynamic = draw_dynamic} end diff --git a/drawing/System.lua b/drawing/System.lua index ced8b4a..1342665 100644 --- a/drawing/System.lua +++ b/drawing/System.lua @@ -2,44 +2,43 @@ local Util = require 'Util' local Common = require 'Common' local Geometry = require 'Geometry' -local __string_match = string.match - -local _TEXT_SPACING_ = 20 - -local header = Common.Header( - Geometry.LEFT_X, - Geometry.TOP_Y, - Geometry.SECTION_WIDTH, - 'SYSTEM' -) - -local rows = Common.initTextRows( - Geometry.LEFT_X, - header.bottom_y, - Geometry.SECTION_WIDTH, - _TEXT_SPACING_, - {'Kernel', 'Uptime', 'Last Upgrade', 'Last Sync'} -) - -_TEXT_SPACING_ = nil - -local draw_static = function(cr) - Common.drawHeader(cr, header) - Common.text_rows_draw_static(rows, cr) -end - -local draw_dynamic = function(cr, pacman_stats) - local last_update, last_sync = "N/A", "N/A" - if pacman_stats then - last_update, last_sync = __string_match(pacman_stats, "^%d+%s+([^%s]+)%s+([^%s]+).*") - end - Common.text_rows_set(rows, cr, 1, Util.conky('$kernel')) - Common.text_rows_set(rows, cr, 2, Util.conky('$uptime')) - Common.text_rows_set(rows, cr, 3, last_update) - Common.text_rows_set(rows, cr, 4, last_sync) - Common.text_rows_draw_dynamic(rows, cr) -end - return function() + local TEXT_SPACING = 20 + + local __string_match = string.match + + local header = Common.Header( + Geometry.LEFT_X, + Geometry.TOP_Y, + Geometry.SECTION_WIDTH, + 'SYSTEM' + ) + + local rows = Common.initTextRows( + Geometry.LEFT_X, + header.bottom_y, + Geometry.SECTION_WIDTH, + TEXT_SPACING, + {'Kernel', 'Uptime', 'Last Upgrade', 'Last Sync'} + ) + + local draw_static = function(cr) + Common.drawHeader(cr, header) + Common.text_rows_draw_static(rows, cr) + end + + local draw_dynamic = function(cr, pacman_stats) + local last_update, last_sync = "N/A", "N/A" + if pacman_stats then + last_update, last_sync = __string_match(pacman_stats, "^%d+%s+([^%s]+)%s+([^%s]+).*") + end + -- TODO this doesn't need to be update every time + Common.text_rows_set(rows, cr, 1, Util.conky('$kernel')) + Common.text_rows_set(rows, cr, 2, Util.conky('$uptime')) + Common.text_rows_set(rows, cr, 3, last_update) + Common.text_rows_set(rows, cr, 4, last_sync) + Common.text_rows_draw_dynamic(rows, cr) + end + return {static = draw_static, dynamic = draw_dynamic} end