X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/2f8a1fff3b542207a3fdbd3f478d62b9caf59849..bfd2f3d9e50c286c22a745816828a33c157a7487:/.config/awesome/rc.lua diff --git a/.config/awesome/rc.lua b/.config/awesome/rc.lua index 81f5476..5a4db69 100644 --- a/.config/awesome/rc.lua +++ b/.config/awesome/rc.lua @@ -22,9 +22,8 @@ local has_fdo, freedesktop = pcall(require, "freedesktop") -- Other libraries local tblutils = require("tblutils") local lain = require("lain") -local dkjson = require("lain.util").dkjson -local math = require("math") -local luatz = require("luatz") +local ccwidgets = require("cryptocoin_widgets") +local clocksarray = require("clocksarray") -- }}} -- {{{ Error handling @@ -75,27 +74,28 @@ cmdkey = "Mod3" -- Table of layouts to cover with awful.layout.inc, order matters. awful.layout.layouts = { - awful.layout.suit.fair, + awful.layout.suit.floating, awful.layout.suit.tile, - -- awful.layout.suit.tile.left, - -- awful.layout.suit.tile.bottom, + awful.layout.suit.tile.left, + awful.layout.suit.tile.bottom, awful.layout.suit.tile.top, - -- awful.layout.suit.spiral, - -- awful.layout.suit.spiral.dwindle, + awful.layout.suit.fair, + awful.layout.suit.fair.horizontal, + awful.layout.suit.spiral, + awful.layout.suit.spiral.dwindle, awful.layout.suit.max, - -- awful.layout.suit.max.fullscreen, - -- awful.layout.suit.magnifier, - -- awful.layout.suit.corner.nw, + awful.layout.suit.max.fullscreen, + awful.layout.suit.magnifier, + awful.layout.suit.corner.nw, -- awful.layout.suit.corner.ne, -- awful.layout.suit.corner.sw, -- awful.layout.suit.corner.se, - awful.layout.suit.floating, } -layout_default = awful.layout.layouts[1] +layout_default = awful.layout.layouts[6] layout_tiled = awful.layout.layouts[2] -layout_maximised = awful.layout.layouts[4] -layout_floating = awful.layout.layouts[5] +layout_maximised = awful.layout.layouts[10] +layout_floating = awful.layout.layouts[1] -- }}} -- {{{ Helper functions @@ -123,48 +123,6 @@ local function set_wallpaper(s) gears.wallpaper.maximized(wallpaper, s, true) end end - -local lain_bat = lain.widget.bat({ - batteries = {"BAT0", "BAT1"}, - settings = function() - local delim = "↓" - if bat_now.status == "Charging" then delim = "↑" - elseif bat_now.status == "Unknown" then delim = "٭" end - widget:set_text(bat_now.perc .. "% " .. delim .. " " .. bat_now.time) - end, -}) - -local function poloniex_price(output, pair, prec) - local xc, pos, err = dkjson.decode(output, 1, nil) - if not prec then prec = 4 end - val = (xc and xc[pair]["last"]) or 0 - val = math.floor(val*10^prec+0.5)/10^prec - return (not err and val) or "n/a" -end - -local eth_widget = lain.widget.watch({ - cmd = "curl -m5 -s 'https://poloniex.com/public?command=returnTicker'", - timeout = 600, - settings = function() - widget:set_text(poloniex_price(output, 'BTC_ETH') .. " Ƀ/Ξ") - end -}) - -local function coindesk_price(output, base, prec) - local xc, pos, err = dkjson.decode(output, 1, nil) - if not prec then prec = 4 end - val = (xc and xc["bpi"][base]["rate_float"]) or 0 - val = math.floor(val*10^prec+0.5)/10^prec - return (not err and val) or "n/a" -end - -local btc_widget = lain.widget.watch({ - cmd = "curl -m5 -Ls 'https://api.coindesk.com/v1/bpi/currentprice/EUR.json'", - timeout = 600, - settings = function() - widget:set_text(coindesk_price(output, "EUR", 2) .. " €/Ƀ") - end -}) -- }}} -- {{{ Menu @@ -210,22 +168,21 @@ spacer:set_text(' │ ') -- Keyboard map indicator and switcher mykeyboardlayout = awful.widget.keyboardlayout() --- Create a textclock widget -clocks = { wibox.widget.textclock("%a %d %b %H:%M:%S %Z", 1) } +local lain_bat = lain.widget.bat({ + batteries = {"BAT0", "BAT1"}, + settings = function() + local delim = "↓" + if bat_now.status == "Charging" then delim = "↑" + elseif bat_now.status == "Unknown" then delim = "٭" end + widget:set_text(bat_now.perc .. "% " .. delim .. " " .. bat_now.time) + end, +}) -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 +-- Create a textclock widget +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( @@ -357,12 +314,14 @@ awful.screen.connect_for_each_screen(function(s) layout = wibox.layout.fixed.horizontal, mykeyboardlayout, wibox.widget.systray(), - btc_widget, + ccwidgets.btc_widget, + spacer, + ccwidgets.eth_widget, spacer, lain_bat.widget, spacer, }, - clocks, + clocksarray, { mylayoutbox[s], }