From: martin f. krafft Date: Wed, 21 Feb 2018 22:23:04 +0000 (+1300) Subject: factor out sorted_table helper function X-Git-Url: https://git.madduck.net/etc/awesome.git/commitdiff_plain/65a64dbd28fbc1be5503a8e5ba45a48098c8af7c?ds=sidebyside;hp=--cc;pf=etc factor out sorted_table helper function --- 65a64dbd28fbc1be5503a8e5ba45a48098c8af7c diff --git a/.config/awesome/rc.lua b/.config/awesome/rc.lua index 3246cb4..60c9133 100644 --- a/.config/awesome/rc.lua +++ b/.config/awesome/rc.lua @@ -12,6 +12,7 @@ local xrdb = beautiful.xresources local naughty = require("naughty") local menubar = require("menubar") local hotkeys_popup = require("awful.hotkeys_popup").widget +local tblutils = require("tblutils") local lain = require("lain") local dkjson = require("lain.util").dkjson local math = require("math") @@ -104,33 +105,6 @@ local function client_menu_toggle_fn() end end -local function sorted_pairs(t, f) - local a = {} - for n in pairs(t) do table.insert(a, n) end - table.sort(a, f) - local i = 0 -- iterator variable - local iter = function () -- iterator function - i = i + 1 - if a[i] == nil then return nil - else return a[i], t[a[i]] - end - end - return iter -end - -local function print_table(tbl, indent) - if not indent then indent = 0 end - for k, v in pairs(tbl) do - formatting = string.rep(" ", indent) .. k .. ": " - if type(v) == "table" then - print(formatting) - print_table(v, indent+1) - else - print(formatting .. tostring(v)) - end - end -end - local lain_bat = lain.widget.bat({ batteries = {"BAT0", "BAT1"}, settings = function() @@ -213,7 +187,7 @@ ZONES = { ["DE"] = "Europe/Berlin" } local now = luatz.time_in(nil) -for c, tz in sorted_pairs(ZONES) do +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) @@ -323,7 +297,7 @@ awful.screen.connect_for_each_screen(function(s) if not tags[s.index] then tags[s.index] = {} end - for n,p in sorted_pairs(screentags[s.index]) do + for n,p in tblutils.sorted_pairs(screentags[s.index]) do p["screen"] = s n = string.sub(n, 2) -- remove leading 't' needed for syntax in table table.insert(tags[s.index], awful.tag.add(n, p)) diff --git a/.config/awesome/tblutils.lua b/.config/awesome/tblutils.lua new file mode 100644 index 0000000..141645c --- /dev/null +++ b/.config/awesome/tblutils.lua @@ -0,0 +1,17 @@ +local module = {} + +function module.sorted_pairs(t, f) + local a = {} + for n in pairs(t) do table.insert(a, n) end + table.sort(a, f) + local i = 0 -- iterator variable + local iter = function () -- iterator function + i = i + 1 + if a[i] == nil then return nil + else return a[i], t[a[i]] + end + end + return iter +end + +return module