diff --git a/drawing/filesystem.lua b/drawing/filesystem.lua index 335675b..7771dc8 100644 --- a/drawing/filesystem.lua +++ b/drawing/filesystem.lua @@ -4,7 +4,7 @@ local geometry = require 'geometry' local pure = require 'pure' local impure = require 'impure' -return function(pathspecs, point) +return function(pathspecs, main_state, point) local SPACING = 20 local BAR_PAD = 100 local SEPARATOR_SPACING = 20 @@ -19,8 +19,8 @@ return function(pathspecs, point) geometry.SECTION_WIDTH, 'SMART Daemon' ) - local update = function(state) - if state.trigger10 == 0 then + local update = function() + if main_state.trigger10 == 0 then local pid = i_o.execute_cmd('pidof smartd', nil, '*n') common.text_row_set(obj, (pid == '') and 'Error' or 'Running') end @@ -62,8 +62,8 @@ return function(pathspecs, point) local read_fs = function(index, cmd) common.compound_bar_set(obj, index, i_o.conky_numeric(cmd)) end - local update = function(state) - if state.trigger10 == 0 then + local update = function() + if main_state.trigger10 == 0 then impure.ieach(read_fs, CONKY_CMDS) end end diff --git a/drawing/pacman.lua b/drawing/pacman.lua index 0b8018d..976ca5e 100644 --- a/drawing/pacman.lua +++ b/drawing/pacman.lua @@ -2,7 +2,7 @@ local common = require 'common' local pure = require 'pure' local geometry = require 'geometry' -return function(point) +return function(main_state, point) local TEXT_SPACING = 20 local __string_match = string.match @@ -16,9 +16,9 @@ return function(point) TEXT_SPACING, {'Total', 'Explicit', 'Outdated', 'Orphaned', 'Local'} ) - local update = function(state) + local update = function() local stats = __string_match( - state.pacman_stats, + main_state.pacman_stats, '%d+%s+[^%s]+%s+[^%s]+%s+(.*)$' ) if stats then diff --git a/drawing/power.lua b/drawing/power.lua index 76abf43..ed898ad 100644 --- a/drawing/power.lua +++ b/drawing/power.lua @@ -4,7 +4,7 @@ local common = require 'common' local geometry = require 'geometry' local sys = require 'sys' -return function(update_freq, battery, point) +return function(update_freq, battery, main_state, point) local TEXT_SPACING = 20 local PLOT_SEC_BREAK = 20 local PLOT_HEIGHT = 56 @@ -98,8 +98,11 @@ return function(update_freq, battery, point) return common.mk_acc( geometry.SECTION_WIDTH, PLOT_HEIGHT + PLOT_SEC_BREAK, - function(state) - common.tagged_scaled_timeseries_set(obj, read_battery_power(state.is_using_ac)) + function() + common.tagged_scaled_timeseries_set( + obj, + read_battery_power(main_state.is_using_ac + )) end, mk_static(obj), mk_dynamic(obj) diff --git a/drawing/processor.lua b/drawing/processor.lua index 63df1d2..00939a0 100644 --- a/drawing/processor.lua +++ b/drawing/processor.lua @@ -8,7 +8,7 @@ local pure = require 'pure' local __math_floor = math.floor -return function(update_freq, point) +return function(update_freq, main_state, point) -- local SHOW_DIALS = true -- local SHOW_TIMESERIES = true -- local SHOW_TABLE = true @@ -27,15 +27,15 @@ return function(update_freq, point) -- cores (loads and temps) -- this totally is not supposed to be a state monad (ssssh...) - local update_state = function(trigger, cpu_loads) + local update_state = function(cpu_loads) return { cpu_loads = cpu.read_cpu_loads(cpu_loads), load_sum = 0, - trigger = trigger + trigger = main_state.trigger10 } end - local state = update_state(0, cpu.init_cpu_loads()) + local state = update_state(cpu.init_cpu_loads()) local ncpus = cpu.get_cpu_number() local ncores = cpu.get_core_number() local nthreads = ncpus / ncores @@ -242,8 +242,8 @@ return function(update_freq, point) return pure.map_at( "update", function(f) - return function(main_state) - f(update_state(main_state.trigger10, state.cpu_loads)) + return function() + f(update_state(state.cpu_loads)) end end, rbs diff --git a/drawing/static.lua b/drawing/static.lua index 975641a..67024e1 100644 --- a/drawing/static.lua +++ b/drawing/static.lua @@ -72,7 +72,7 @@ local build_surface = function(box, fs) return {x = cs_x, y = cs_y, s = cs} end -local reduce_static = function(y, margins, spacing, acc, panel_mods) +local reduce_static = function(y, margins, acc, panel_mods) if type(panel_mods) == "number" then acc.next_x = acc.next_x + panel_mods else @@ -97,8 +97,7 @@ return function(point, module_sets) pure.partial( reduce_static, point.y, - {x = geometry.PANEL_MARGIN_X, y = geometry.PANEL_MARGIN_Y}, - 20 + {x = geometry.PANEL_MARGIN_X, y = geometry.PANEL_MARGIN_Y} ), {next_x = point.x, static = {}, update = {}, dynamic = {}}, module_sets diff --git a/drawing/system.lua b/drawing/system.lua index 9951325..bba3d05 100644 --- a/drawing/system.lua +++ b/drawing/system.lua @@ -3,7 +3,7 @@ local pure = require 'pure' local common = require 'common' local geometry = require 'geometry' -return function(point) +return function(main_state, point) local TEXT_SPACING = 20 local __string_match = string.match @@ -16,11 +16,11 @@ return function(point) TEXT_SPACING, {'Kernel', 'Uptime', 'Last Upgrade', 'Last Sync'} ) - local update = function(state) + local update = function() local last_update, last_sync - if state.pacman_stats then + if main_state.pacman_stats then last_update, last_sync = __string_match( - state.pacman_stats, + main_state.pacman_stats, "^%d+%s+([^%s]+)%s+([^%s]+).*" ) end diff --git a/main.lua b/main.lua index 7efb283..d8a2ca0 100644 --- a/main.lua +++ b/main.lua @@ -33,8 +33,6 @@ local static = require 'static' local draw_dynamic -local main_state = {} - function conky_start(update_interval) conky_set_update_interval(update_interval) @@ -50,15 +48,17 @@ function conky_start(update_interval) {'/tmp', 'tmpfs'} } + local main_state = {} + local mem = pure.partial(memory, update_freq) local rw = pure.partial(readwrite, update_freq, devices) local net = pure.partial(network, update_freq) - local pwr = pure.partial(power, update_freq, battery) - local fs = pure.partial(filesystem, fs_paths) - local stm = system + local pwr = pure.partial(power, update_freq, battery, main_state) + local fs = pure.partial(filesystem, fs_paths, main_state) + local stm = pure.partial(system, main_state) local gfx = pure.partial(graphics, update_freq) - local proc = pure.partial(processor, update_freq) - local pcm = pacman + local proc = pure.partial(processor, update_freq, main_state) + local pcm = pure.partial(pacman, main_state) local using_ac = sys.battery_status_reader(battery) @@ -81,7 +81,7 @@ function conky_start(update_interval) main_state.is_using_ac = using_ac() compiled.static(cr) - compiled.update(main_state) + compiled.update() compiled.dynamic(cr) end end