madduck's git repository

Every one of the projects in this repository is available at the canonical URL git://git.madduck.net/madduck/pub/<projectpath> — see each project's metadata for the exact URL.

All patches and comments are welcome. Please squash your changes to logical commits before using git-format-patch and git-send-email to patches@git.madduck.net. If you'd read over the Git project's submission guidelines and adhered to them, I'd be especially grateful.

SSH access, as well as push access can be individually arranged.

If you use my repositories frequently, consider adding the following snippet to ~/.gitconfig and using the third clone URL listed for each project:

[url "git://git.madduck.net/madduck/"]
  insteadOf = madduck:

factor out clocksarray to separate module
authormartin f. krafft <madduck@madduck.net>
Wed, 21 Feb 2018 23:47:12 +0000 (12:47 +1300)
committermartin f. krafft <madduck@madduck.net>
Thu, 22 Feb 2018 00:35:58 +0000 (13:35 +1300)
.config/awesome/clocksarray.lua [new file with mode: 0644]
.config/awesome/rc.lua

diff --git a/.config/awesome/clocksarray.lua b/.config/awesome/clocksarray.lua
new file mode 100644 (file)
index 0000000..eed124e
--- /dev/null
@@ -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
index 3f26b08d0775326972e67b47f87d030e2a0befae..4b3ae6b43a521a83124fc4061526c3c746f460bb 100644 (file)
@@ -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],
             }