REF make modules return startup closures
This commit is contained in:
parent
1fb91d03be
commit
5875eeff98
|
@ -1,5 +1,3 @@
|
|||
local M = {}
|
||||
|
||||
local Line = require 'Line'
|
||||
local Util = require 'Util'
|
||||
local Common = require 'Common'
|
||||
|
@ -71,17 +69,19 @@ local update = function(cr)
|
|||
end
|
||||
end
|
||||
|
||||
M.draw_static = function(cr)
|
||||
local draw_static = function(cr)
|
||||
Common.drawHeader(cr, header)
|
||||
Common.text_row_draw_static(smart, cr)
|
||||
Line.draw(separator, cr)
|
||||
Common.compound_bar_draw_static(fs, cr)
|
||||
end
|
||||
|
||||
M.draw_dynamic = function(cr, trigger)
|
||||
local draw_dynamic = function(cr, trigger)
|
||||
if trigger == 0 then update(cr) end
|
||||
Common.text_row_draw_dynamic(smart, cr)
|
||||
Common.compound_bar_draw_dynamic(fs, cr)
|
||||
end
|
||||
|
||||
return M
|
||||
return function()
|
||||
return {static = draw_static, dynamic = draw_dynamic}
|
||||
end
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
local M = {}
|
||||
|
||||
local Text = require 'Text'
|
||||
local Line = require 'Line'
|
||||
local Util = require 'Util'
|
||||
|
@ -191,7 +189,7 @@ _GPU_UTIL_Y_ = nil
|
|||
_MEM_UTIL_Y_ = nil
|
||||
_VID_UTIL_Y_ = nil
|
||||
|
||||
M.draw_static = function(cr)
|
||||
local draw_static = function(cr)
|
||||
Common.drawHeader(cr, header)
|
||||
|
||||
Common.text_row_draw_static(status, cr)
|
||||
|
@ -208,7 +206,7 @@ M.draw_static = function(cr)
|
|||
Common.percent_plot_draw_static(vid_util, cr)
|
||||
end
|
||||
|
||||
M.draw_dynamic = function(cr)
|
||||
local draw_dynamic = function(cr)
|
||||
update(cr)
|
||||
|
||||
Common.text_row_draw_dynamic(status, cr)
|
||||
|
@ -219,4 +217,6 @@ M.draw_dynamic = function(cr)
|
|||
Common.percent_plot_draw_dynamic(vid_util, cr)
|
||||
end
|
||||
|
||||
return M
|
||||
return function()
|
||||
return {static = draw_static, dynamic = draw_dynamic}
|
||||
end
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
local M = {}
|
||||
|
||||
local Arc = require 'Arc'
|
||||
local Dial = require 'Dial'
|
||||
local LabelPlot = require 'LabelPlot'
|
||||
|
@ -172,7 +170,7 @@ _TEXT_LEFT_X_ = nil
|
|||
_RIGHT_X_ = nil
|
||||
_PLOT_Y_ = nil
|
||||
|
||||
M.draw_static = function(cr)
|
||||
local draw_static = function(cr)
|
||||
Common.drawHeader(cr, header)
|
||||
|
||||
Common.text_ring_draw_static(text_ring, cr)
|
||||
|
@ -185,7 +183,7 @@ M.draw_static = function(cr)
|
|||
Table.draw_static(tbl, cr)
|
||||
end
|
||||
|
||||
M.draw_dynamic = function(cr)
|
||||
local draw_dynamic = function(cr)
|
||||
update(cr)
|
||||
|
||||
Dial.draw_dynamic(dial, cr)
|
||||
|
@ -200,4 +198,6 @@ M.draw_dynamic = function(cr)
|
|||
Table.draw_dynamic(tbl, cr)
|
||||
end
|
||||
|
||||
return M
|
||||
return function(update_freq)
|
||||
return {dynamic = draw_dynamic, static = draw_static}
|
||||
end
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
local M = {}
|
||||
|
||||
local Util = require 'Util'
|
||||
local Common = require 'Common'
|
||||
local Geometry = require 'Geometry'
|
||||
|
@ -57,49 +55,6 @@ local get_bits = function(path)
|
|||
return Util.read_file(path, nil, '*n') * 8
|
||||
end
|
||||
|
||||
local update = function(cr, update_frequency)
|
||||
local dspeed, uspeed = 0, 0
|
||||
|
||||
local rx_delta, tx_delta
|
||||
|
||||
-- iterate through the route file and filter on interfaces that are gateways (flag = 0003)
|
||||
local iterator = __string_gmatch(Util.read_file('/proc/net/route'),
|
||||
'(%w+)%s+%w+%s+%w+%s+0003%s+')
|
||||
|
||||
for interface in iterator do
|
||||
local interface_counters = interface_counters_tbl[interface]
|
||||
|
||||
if not interface_counters then
|
||||
local rx_path = '/sys/class/net/'..interface..'/statistics/rx_bytes'
|
||||
local tx_path = '/sys/class/net/'..interface..'/statistics/tx_bytes'
|
||||
|
||||
interface_counters = {
|
||||
rx_path = rx_path,
|
||||
tx_path = tx_path,
|
||||
prev_rx_byte_cnt = get_bits(rx_path, nil, '*n'),
|
||||
prev_tx_byte_cnt = get_bits(tx_path, nil, '*n'),
|
||||
}
|
||||
interface_counters_tbl[interface] = interface_counters
|
||||
end
|
||||
|
||||
local rx_byte_cnt = get_bits(interface_counters.rx_path, nil, '*n')
|
||||
local tx_byte_cnt = get_bits(interface_counters.tx_path, nil, '*n')
|
||||
|
||||
rx_delta = rx_byte_cnt - interface_counters.prev_rx_byte_cnt
|
||||
tx_delta = tx_byte_cnt - interface_counters.prev_tx_byte_cnt
|
||||
|
||||
interface_counters.prev_rx_byte_cnt = rx_byte_cnt
|
||||
interface_counters.prev_tx_byte_cnt = tx_byte_cnt
|
||||
|
||||
-- mask overflow
|
||||
if rx_delta > 0 then dspeed = dspeed + rx_delta * update_frequency end
|
||||
if tx_delta > 0 then uspeed = uspeed + tx_delta * update_frequency end
|
||||
end
|
||||
|
||||
Common.annotated_scale_plot_set(dnload, cr, dspeed)
|
||||
Common.annotated_scale_plot_set(upload, cr, uspeed)
|
||||
end
|
||||
|
||||
_PLOT_SEC_BREAK_ = nil
|
||||
_PLOT_HEIGHT_ = nil
|
||||
|
||||
|
@ -109,13 +64,55 @@ local draw_static = function(cr)
|
|||
Common.annotated_scale_plot_draw_static(upload, cr)
|
||||
end
|
||||
|
||||
local draw_dynamic = function(cr, update_frequency)
|
||||
update(cr, update_frequency)
|
||||
Common.annotated_scale_plot_draw_dynamic(dnload, cr)
|
||||
Common.annotated_scale_plot_draw_dynamic(upload, cr)
|
||||
return function(update_freq)
|
||||
local _update = function(cr)
|
||||
local dspeed, uspeed = 0, 0
|
||||
|
||||
local rx_delta, tx_delta
|
||||
|
||||
-- iterate through the route file and filter on interfaces that are gateways (flag = 0003)
|
||||
local iterator = __string_gmatch(Util.read_file('/proc/net/route'),
|
||||
'(%w+)%s+%w+%s+%w+%s+0003%s+')
|
||||
|
||||
for interface in iterator do
|
||||
local interface_counters = interface_counters_tbl[interface]
|
||||
|
||||
if not interface_counters then
|
||||
local rx_path = '/sys/class/net/'..interface..'/statistics/rx_bytes'
|
||||
local tx_path = '/sys/class/net/'..interface..'/statistics/tx_bytes'
|
||||
|
||||
interface_counters = {
|
||||
rx_path = rx_path,
|
||||
tx_path = tx_path,
|
||||
prev_rx_byte_cnt = get_bits(rx_path, nil, '*n'),
|
||||
prev_tx_byte_cnt = get_bits(tx_path, nil, '*n'),
|
||||
}
|
||||
interface_counters_tbl[interface] = interface_counters
|
||||
end
|
||||
|
||||
local rx_byte_cnt = get_bits(interface_counters.rx_path, nil, '*n')
|
||||
local tx_byte_cnt = get_bits(interface_counters.tx_path, nil, '*n')
|
||||
|
||||
rx_delta = rx_byte_cnt - interface_counters.prev_rx_byte_cnt
|
||||
tx_delta = tx_byte_cnt - interface_counters.prev_tx_byte_cnt
|
||||
|
||||
interface_counters.prev_rx_byte_cnt = rx_byte_cnt
|
||||
interface_counters.prev_tx_byte_cnt = tx_byte_cnt
|
||||
|
||||
-- mask overflow
|
||||
if rx_delta > 0 then dspeed = dspeed + rx_delta * update_freq end
|
||||
if tx_delta > 0 then uspeed = uspeed + tx_delta * update_freq end
|
||||
end
|
||||
|
||||
Common.annotated_scale_plot_set(dnload, cr, dspeed)
|
||||
Common.annotated_scale_plot_set(upload, cr, uspeed)
|
||||
end
|
||||
|
||||
local draw_dynamic = function(cr)
|
||||
_update(cr)
|
||||
Common.annotated_scale_plot_draw_dynamic(dnload, cr)
|
||||
Common.annotated_scale_plot_draw_dynamic(upload, cr)
|
||||
end
|
||||
|
||||
return {static = draw_static, dynamic = draw_dynamic}
|
||||
end
|
||||
|
||||
M.draw_static = draw_static
|
||||
M.draw_dynamic = draw_dynamic
|
||||
|
||||
return M
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
local M = {}
|
||||
|
||||
local Common = require 'Common'
|
||||
local Geometry = require 'Geometry'
|
||||
|
||||
|
@ -40,14 +38,16 @@ local update = function(cr, pacman_stats)
|
|||
end
|
||||
end
|
||||
|
||||
M.draw_static = function(cr)
|
||||
local draw_static = function(cr)
|
||||
Common.drawHeader(cr, header)
|
||||
Common.text_rows_draw_static(rows, cr)
|
||||
end
|
||||
|
||||
M.draw_dynamic = function(cr, pacman_stats)
|
||||
local draw_dynamic = function(cr, pacman_stats)
|
||||
update(cr, pacman_stats)
|
||||
Common.text_rows_draw_dynamic(rows, cr)
|
||||
end
|
||||
|
||||
return M
|
||||
return function()
|
||||
return {static = draw_static, dynamic = draw_dynamic}
|
||||
end
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
local M = {}
|
||||
|
||||
local Util = require 'Util'
|
||||
local Common = require 'Common'
|
||||
local Geometry = require 'Geometry'
|
||||
|
@ -83,35 +81,6 @@ local DRAM_PATH = '/sys/class/powercap/intel-rapl:0:2/energy_uj'
|
|||
local prev_pkg0_uj_cnt = Util.read_file(PKG0_PATH, nil, '*n')
|
||||
local prev_dram_uj_cnt = Util.read_file(DRAM_PATH, nil, '*n')
|
||||
|
||||
local update = function(cr, update_frequency, is_using_ac)
|
||||
local pkg0_uj_cnt = Util.read_file(PKG0_PATH, nil, '*n')
|
||||
local dram_uj_cnt = Util.read_file(DRAM_PATH, nil, '*n')
|
||||
|
||||
local pkg0_power = calculate_power(prev_pkg0_uj_cnt, pkg0_uj_cnt, update_frequency)
|
||||
|
||||
-- Common.annotated_scale_plot_set(pkg0, cr, Util.precision_round_to_string(pkg0_power, 3), pkg0_power)
|
||||
Common.annotated_scale_plot_set(pkg0, cr, pkg0_power)
|
||||
|
||||
local dram_power = calculate_power(prev_dram_uj_cnt, dram_uj_cnt, update_frequency)
|
||||
|
||||
-- Common.annotated_scale_plot_set(dram, cr, Util.precision_round_to_string(dram_power, 3), dram_power)
|
||||
Common.annotated_scale_plot_set(dram, cr, dram_power)
|
||||
|
||||
prev_pkg0_uj_cnt = pkg0_uj_cnt
|
||||
prev_dram_uj_cnt = dram_uj_cnt
|
||||
|
||||
if is_using_ac then
|
||||
-- Common.annotated_scale_plot_set(battery_draw, cr, 'A/C', 0)
|
||||
Common.annotated_scale_plot_set(battery_draw, cr, 0)
|
||||
else
|
||||
local current = Util.read_file('/sys/class/power_supply/BAT0/current_now', nil, '*n')
|
||||
local voltage = Util.read_file('/sys/class/power_supply/BAT0/voltage_now', nil, '*n')
|
||||
local power = current * voltage * 0.000000000001
|
||||
-- local t = Util.precision_round_to_string(power, 3)..' W'
|
||||
-- Common.annotated_scale_plot_set(battery_draw, cr, t, power)
|
||||
Common.annotated_scale_plot_set(battery_draw, cr, power)
|
||||
end
|
||||
end
|
||||
|
||||
_MODULE_Y_ = nil
|
||||
_TEXT_SPACING_ = nil
|
||||
|
@ -119,18 +88,46 @@ _PLOT_SEC_BREAK_ = nil
|
|||
_PLOT_HEIGHT_ = nil
|
||||
_CORE_Y_ = nil
|
||||
|
||||
M.draw_static = function(cr)
|
||||
local draw_static = function(cr)
|
||||
Common.drawHeader(cr, header)
|
||||
Common.annotated_scale_plot_draw_static(pkg0, cr)
|
||||
Common.annotated_scale_plot_draw_static(dram, cr)
|
||||
Common.annotated_scale_plot_draw_static(battery_draw, cr)
|
||||
end
|
||||
|
||||
M.draw_dynamic = function(cr, update_frequency, is_using_ac)
|
||||
update(cr, update_frequency, is_using_ac)
|
||||
Common.annotated_scale_plot_draw_dynamic(pkg0, cr)
|
||||
Common.annotated_scale_plot_draw_dynamic(dram, cr)
|
||||
Common.annotated_scale_plot_draw_dynamic(battery_draw, cr)
|
||||
end
|
||||
return function(update_freq)
|
||||
|
||||
return M
|
||||
local _update = function(cr, is_using_ac)
|
||||
local pkg0_uj_cnt = Util.read_file(PKG0_PATH, nil, '*n')
|
||||
local dram_uj_cnt = Util.read_file(DRAM_PATH, nil, '*n')
|
||||
|
||||
local pkg0_power = calculate_power(prev_pkg0_uj_cnt, pkg0_uj_cnt, update_freq)
|
||||
|
||||
Common.annotated_scale_plot_set(pkg0, cr, pkg0_power)
|
||||
|
||||
local dram_power = calculate_power(prev_dram_uj_cnt, dram_uj_cnt, update_freq)
|
||||
|
||||
Common.annotated_scale_plot_set(dram, cr, dram_power)
|
||||
|
||||
prev_pkg0_uj_cnt = pkg0_uj_cnt
|
||||
prev_dram_uj_cnt = dram_uj_cnt
|
||||
|
||||
if is_using_ac then
|
||||
Common.annotated_scale_plot_set(battery_draw, cr, 0)
|
||||
else
|
||||
local current = Util.read_file('/sys/class/power_supply/BAT0/current_now', nil, '*n')
|
||||
local voltage = Util.read_file('/sys/class/power_supply/BAT0/voltage_now', nil, '*n')
|
||||
local power = current * voltage * 0.000000000001
|
||||
Common.annotated_scale_plot_set(battery_draw, cr, power)
|
||||
end
|
||||
end
|
||||
|
||||
local draw_dynamic = function(cr, is_using_ac)
|
||||
_update(cr, is_using_ac)
|
||||
Common.annotated_scale_plot_draw_dynamic(pkg0, cr)
|
||||
Common.annotated_scale_plot_draw_dynamic(dram, cr)
|
||||
Common.annotated_scale_plot_draw_dynamic(battery_draw, cr)
|
||||
end
|
||||
|
||||
return {static = draw_static, dynamic = draw_dynamic}
|
||||
end
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
local M = {}
|
||||
|
||||
local CompoundDial = require 'CompoundDial'
|
||||
local Line = require 'Line'
|
||||
local Table = require 'Table'
|
||||
|
@ -268,7 +266,7 @@ _SEP_Y_ = nil
|
|||
_HWP_Y_ = nil
|
||||
_PLOT_Y_ = nil
|
||||
|
||||
M.draw_static = function(cr)
|
||||
local draw_static = function(cr)
|
||||
Common.drawHeader(cr, header)
|
||||
|
||||
for c = 1, NUM_PHYSICAL_CORES do
|
||||
|
@ -285,7 +283,7 @@ M.draw_static = function(cr)
|
|||
Table.draw_static(tbl, cr)
|
||||
end
|
||||
|
||||
M.draw_dynamic = function(cr, trigger)
|
||||
local draw_dynamic = function(cr, trigger)
|
||||
update(cr, trigger)
|
||||
|
||||
for c = 1, NUM_PHYSICAL_CORES do
|
||||
|
@ -300,4 +298,6 @@ M.draw_dynamic = function(cr, trigger)
|
|||
Table.draw_dynamic(tbl, cr)
|
||||
end
|
||||
|
||||
return M
|
||||
return function()
|
||||
return {static = draw_static, dynamic = draw_dynamic}
|
||||
end
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
local M = {}
|
||||
|
||||
local Util = require 'Util'
|
||||
local Common = require 'Common'
|
||||
local Geometry = require 'Geometry'
|
||||
|
@ -22,18 +20,6 @@ local read_stat_file = function()
|
|||
return __tonumber(bytes_r) * BLOCK_SIZE_BYTES, __tonumber(bytes_w) * BLOCK_SIZE_BYTES
|
||||
end
|
||||
|
||||
local update_stat = function(cr, stat, byte_cnt, update_frequency)
|
||||
local delta_bytes = byte_cnt - stat.prev_byte_cnt
|
||||
stat.prev_byte_cnt = byte_cnt
|
||||
|
||||
local plot_value = 0
|
||||
if delta_bytes > 0 then
|
||||
local bps = delta_bytes * update_frequency
|
||||
plot_value = bps
|
||||
end
|
||||
Common.annotated_scale_plot_set(stat, cr, plot_value)
|
||||
end
|
||||
|
||||
local io_label_function = function(bytes)
|
||||
local new_unit, new_value = Util.convert_data_val(bytes)
|
||||
return __math_floor(new_value)..' '..new_unit..'B/s'
|
||||
|
@ -83,25 +69,37 @@ reads.byte_cnt = 0
|
|||
writes.byte_cnt = 0
|
||||
reads.prev_byte_cnt, writes.prev_byte_cnt = read_stat_file()
|
||||
|
||||
local update = function(cr, update_frequency)
|
||||
local read_byte_cnt, write_byte_cnt = read_stat_file()
|
||||
update_stat(cr, reads, read_byte_cnt, update_frequency)
|
||||
update_stat(cr, writes, write_byte_cnt, update_frequency)
|
||||
end
|
||||
|
||||
local draw_static = function(cr)
|
||||
Common.drawHeader(cr, header)
|
||||
Common.annotated_scale_plot_draw_static(reads, cr)
|
||||
Common.annotated_scale_plot_draw_static(writes, cr)
|
||||
end
|
||||
|
||||
local draw_dynamic = function(cr, update_frequency)
|
||||
update(cr, update_frequency)
|
||||
Common.annotated_scale_plot_draw_dynamic(reads, cr)
|
||||
Common.annotated_scale_plot_draw_dynamic(writes, cr)
|
||||
return function(update_freq)
|
||||
|
||||
local update_stat = function(cr, stat, byte_cnt)
|
||||
local delta_bytes = byte_cnt - stat.prev_byte_cnt
|
||||
stat.prev_byte_cnt = byte_cnt
|
||||
|
||||
local plot_value = 0
|
||||
if delta_bytes > 0 then
|
||||
local bps = delta_bytes * update_freq
|
||||
plot_value = bps
|
||||
end
|
||||
Common.annotated_scale_plot_set(stat, cr, plot_value)
|
||||
end
|
||||
|
||||
local update = function(cr)
|
||||
local read_byte_cnt, write_byte_cnt = read_stat_file()
|
||||
update_stat(cr, reads, read_byte_cnt)
|
||||
update_stat(cr, writes, write_byte_cnt)
|
||||
end
|
||||
|
||||
local draw_dynamic = function(cr)
|
||||
update(cr)
|
||||
Common.annotated_scale_plot_draw_dynamic(reads, cr)
|
||||
Common.annotated_scale_plot_draw_dynamic(writes, cr)
|
||||
end
|
||||
|
||||
return {static = draw_static, dynamic = draw_dynamic}
|
||||
end
|
||||
|
||||
M.draw_static = draw_static
|
||||
M.draw_dynamic = draw_dynamic
|
||||
|
||||
return M
|
||||
|
|
|
@ -1,5 +1,3 @@
|
|||
local M = {}
|
||||
|
||||
local Util = require 'Util'
|
||||
local Common = require 'Common'
|
||||
local Geometry = require 'Geometry'
|
||||
|
@ -25,12 +23,12 @@ local rows = Common.initTextRows(
|
|||
|
||||
_TEXT_SPACING_ = nil
|
||||
|
||||
M.draw_static = function(cr)
|
||||
local draw_static = function(cr)
|
||||
Common.drawHeader(cr, header)
|
||||
Common.text_rows_draw_static(rows, cr)
|
||||
end
|
||||
|
||||
M.draw_dynamic = function(cr, pacman_stats)
|
||||
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]+).*")
|
||||
|
@ -42,4 +40,6 @@ M.draw_dynamic = function(cr, pacman_stats)
|
|||
Common.text_rows_draw_dynamic(rows, cr)
|
||||
end
|
||||
|
||||
return M
|
||||
return function()
|
||||
return {static = draw_static, dynamic = draw_dynamic}
|
||||
end
|
||||
|
|
125
main.lua
125
main.lua
|
@ -81,49 +81,6 @@ local draw_static_surface = function(cr, cs_obj)
|
|||
__cairo_paint(cr)
|
||||
end
|
||||
|
||||
local cs_left = _make_static_surface(
|
||||
Geometry.LEFT_X - Geometry.PANEL_MARGIN_X,
|
||||
Geometry.TOP_Y - Geometry.PANEL_MARGIN_Y,
|
||||
Geometry.SECTION_WIDTH + Geometry.PANEL_MARGIN_X * 2,
|
||||
Geometry.SIDE_HEIGHT + Geometry.PANEL_MARGIN_Y * 2,
|
||||
{System.draw_static, Graphics.draw_static, Processor.draw_static}
|
||||
)
|
||||
|
||||
local cs_center = _make_static_surface(
|
||||
Geometry.CENTER_LEFT_X - Geometry.PANEL_MARGIN_X,
|
||||
Geometry.TOP_Y - Geometry.PANEL_MARGIN_Y,
|
||||
Geometry.CENTER_WIDTH + Geometry.PANEL_MARGIN_Y * 2 + Geometry.CENTER_PAD,
|
||||
Geometry.CENTER_HEIGHT + Geometry.PANEL_MARGIN_Y * 2,
|
||||
{ReadWrite.draw_static, Network.draw_static}
|
||||
)
|
||||
|
||||
local cs_right = _make_static_surface(
|
||||
Geometry.RIGHT_X - Geometry.PANEL_MARGIN_X,
|
||||
Geometry.TOP_Y - Geometry.PANEL_MARGIN_Y,
|
||||
Geometry.SECTION_WIDTH + Geometry.PANEL_MARGIN_X * 2,
|
||||
Geometry.SIDE_HEIGHT + Geometry.PANEL_MARGIN_Y * 2,
|
||||
{Pacman.draw_static, FileSystem.draw_static, Power.draw_static, Memory.draw_static}
|
||||
)
|
||||
|
||||
--
|
||||
-- kill all the stuff we don't need for the main loop
|
||||
--
|
||||
-- local _unrequire = function(m) package.loaded[m] = nil end
|
||||
|
||||
-- _unrequire('Super')
|
||||
-- _unrequire('Color')
|
||||
-- _unrequire('Widget')
|
||||
-- _unrequire('Patterns')
|
||||
|
||||
-- _unrequire = nil
|
||||
-- _make_static_surface = nil
|
||||
-- FillRect = nil
|
||||
-- _G_INIT_DATA_ = nil
|
||||
-- collectgarbage()
|
||||
|
||||
--
|
||||
-- main loop
|
||||
--
|
||||
local using_ac = function()
|
||||
-- for some reason it is much more efficient to test if the battery
|
||||
-- is off than if the ac is on
|
||||
|
@ -132,9 +89,69 @@ end
|
|||
|
||||
local updates = -2 -- this accounts for the first few spazzy iterations
|
||||
local STATS_FILE = '/tmp/.conky_pacman'
|
||||
local draw
|
||||
|
||||
function conky_start(update_interval)
|
||||
conky_set_update_interval(update_interval)
|
||||
|
||||
local update_freq = 1 / update_interval
|
||||
|
||||
local mem = Memory(update_freq)
|
||||
local rw = ReadWrite(update_freq)
|
||||
local net = Network(update_freq)
|
||||
local pwr = Power(update_freq)
|
||||
local fs = FileSystem()
|
||||
local sys = System()
|
||||
local gfx = Graphics()
|
||||
local proc = Processor()
|
||||
local pcm = Pacman()
|
||||
|
||||
local cs_left = _make_static_surface(
|
||||
Geometry.LEFT_X - Geometry.PANEL_MARGIN_X,
|
||||
Geometry.TOP_Y - Geometry.PANEL_MARGIN_Y,
|
||||
Geometry.SECTION_WIDTH + Geometry.PANEL_MARGIN_X * 2,
|
||||
Geometry.SIDE_HEIGHT + Geometry.PANEL_MARGIN_Y * 2,
|
||||
{sys.static, gfx.static, proc.static}
|
||||
)
|
||||
|
||||
local cs_center = _make_static_surface(
|
||||
Geometry.CENTER_LEFT_X - Geometry.PANEL_MARGIN_X,
|
||||
Geometry.TOP_Y - Geometry.PANEL_MARGIN_Y,
|
||||
Geometry.CENTER_WIDTH + Geometry.PANEL_MARGIN_Y * 2 + Geometry.CENTER_PAD,
|
||||
Geometry.CENTER_HEIGHT + Geometry.PANEL_MARGIN_Y * 2,
|
||||
{rw.static, net.static}
|
||||
)
|
||||
|
||||
local cs_right = _make_static_surface(
|
||||
Geometry.RIGHT_X - Geometry.PANEL_MARGIN_X,
|
||||
Geometry.TOP_Y - Geometry.PANEL_MARGIN_Y,
|
||||
Geometry.SECTION_WIDTH + Geometry.PANEL_MARGIN_X * 2,
|
||||
Geometry.SIDE_HEIGHT + Geometry.PANEL_MARGIN_Y * 2,
|
||||
{pcm.static, fs.static, pwr.static, mem.static}
|
||||
)
|
||||
|
||||
draw = function(cr, _updates)
|
||||
draw_static_surface(cr, cs_left)
|
||||
draw_static_surface(cr, cs_center)
|
||||
draw_static_surface(cr, cs_right)
|
||||
|
||||
local t1 = _updates % (update_freq * 10)
|
||||
|
||||
local is_using_ac = using_ac()
|
||||
local pacman_stats = Util.read_file(STATS_FILE)
|
||||
|
||||
sys.dynamic(cr, pacman_stats)
|
||||
gfx.dynamic(cr)
|
||||
proc.dynamic(cr, t1)
|
||||
|
||||
rw.dynamic(cr)
|
||||
net.dynamic(cr)
|
||||
|
||||
pcm.dynamic(cr, pacman_stats)
|
||||
fs.dynamic(cr, t1)
|
||||
pwr.dynamic(cr, is_using_ac)
|
||||
mem.dynamic(cr)
|
||||
end
|
||||
end
|
||||
|
||||
function conky_main()
|
||||
|
@ -144,29 +161,9 @@ function conky_main()
|
|||
local cs = __cairo_xlib_surface_create(_cw.display, _cw.drawable,
|
||||
_cw.visual, 1920, 1080)
|
||||
local cr = __cairo_create(cs)
|
||||
|
||||
draw_static_surface(cr, cs_left)
|
||||
draw_static_surface(cr, cs_center)
|
||||
draw_static_surface(cr, cs_right)
|
||||
|
||||
updates = updates + 1
|
||||
|
||||
local t1 = updates % (UPDATE_FREQUENCY * 10)
|
||||
|
||||
local is_using_ac = using_ac()
|
||||
local pacman_stats = Util.read_file(STATS_FILE)
|
||||
|
||||
System.draw_dynamic(cr, pacman_stats)
|
||||
Graphics.draw_dynamic(cr)
|
||||
Processor.draw_dynamic(cr, t1)
|
||||
|
||||
ReadWrite.draw_dynamic(cr, UPDATE_FREQUENCY)
|
||||
Network.draw_dynamic(cr, UPDATE_FREQUENCY)
|
||||
|
||||
Pacman.draw_dynamic(cr, pacman_stats)
|
||||
FileSystem.draw_dynamic(cr, t1)
|
||||
Power.draw_dynamic(cr, UPDATE_FREQUENCY, is_using_ac)
|
||||
Memory.draw_dynamic(cr)
|
||||
draw(cr, updates)
|
||||
|
||||
__cairo_surface_destroy(cs)
|
||||
__cairo_destroy(cr)
|
||||
|
|
Loading…
Reference in New Issue