From: martin f. krafft Date: Wed, 21 Feb 2018 23:47:12 +0000 (+1300) Subject: factor out clocksarray to separate module X-Git-Url: https://git.madduck.net/etc/awesome.git/commitdiff_plain/3fc25f9854ad1dd65e268060926f657680a23a74 factor out clocksarray to separate module --- diff --git a/.config/awesome/clocksarray.lua b/.config/awesome/clocksarray.lua new file mode 100644 index 0000000..eed124e --- /dev/null +++ b/.config/awesome/clocksarray.lua @@ -0,0 +1,35 @@ +local gears = require("gears") +local wibox = require("wibox") +local math = require("math") +local luatz = require("luatz") +local tblutils = require("tblutils") + +local module = {} + +local function get_textclocks_for_timezones(zones) + local now = luatz.time_in(nil) + local ret = {} + for c, tz in tblutils.sorted_pairs(zones) do + local t = luatz.time_in(tz) + if math.abs(os.difftime(t, now)) > 10 then + local widget = wibox.widget.textclock(c .. ": %H:%M (%a)", 60, tz) + ret[#ret+1] = widget + end + end + return ret +end + +function module.get_clocksarray(strftime, zones, spacer) + local ret = {} + local zoneclocks = get_textclocks_for_timezones(zones) + for i, c in ipairs(zoneclocks) do + ret[#ret+1] = c + if spacer then + ret[#ret+1] = spacer + end + end + ret[#ret+1] = wibox.widget.textclock(strftime, 1) + return ret +end + +return module diff --git a/.config/awesome/rc.lua b/.config/awesome/rc.lua index 3f26b08..4b3ae6b 100644 --- a/.config/awesome/rc.lua +++ b/.config/awesome/rc.lua @@ -23,7 +23,7 @@ local has_fdo, freedesktop = pcall(require, "freedesktop") local tblutils = require("tblutils") local lain = require("lain") local ccwidgets = require("cryptocoin_widgets") -local luatz = require("luatz") +local clocksarray = require("clocksarray") -- }}} -- {{{ Error handling @@ -179,21 +179,10 @@ spacer:set_text(' │ ') mykeyboardlayout = awful.widget.keyboardlayout() -- Create a textclock widget -clocks = { wibox.widget.textclock("%a %d %b %H:%M:%S %Z", 1) } - -ZONES = { - ["NZ"] = "Pacific/Auckland", - ["DE"] = "Europe/Berlin" -} -local now = luatz.time_in(nil) -for c, tz in tblutils.sorted_pairs(ZONES) do - local t = luatz.time_in(tz) - if math.abs(os.difftime(t, now)) > 10 then - local widget = wibox.widget.textclock(c .. ": %H:%M (%a)", 60, tz) - table.insert(clocks, 1, spacer) - table.insert(clocks, 1, widget) - end -end +clocksarray = clocksarray.get_clocksarray("%a %d %b %H:%M:%S %Z", { + ["NZ"] = "Pacific/Auckland", + ["DE"] = "Europe/Berlin" + }, spacer) -- Create a wibox for each screen and add it local taglist_buttons = gears.table.join( @@ -332,7 +321,7 @@ awful.screen.connect_for_each_screen(function(s) lain_bat.widget, spacer, }, - clocks, + clocksarray, { mylayoutbox[s], }