local naughty = require("naughty")
local menubar = require("menubar")
local hotkeys_popup = require("awful.hotkeys_popup").widget
+local lain = require("lain")
+local dkjson = require("lain.util").dkjson
+local math = require("math")
-- }}}
-- {{{ Error handling
end
end
end
+
+local lain_bat = lain.widgets.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.widgets.abase({
+ 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)
+ print(output)
+ 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.widgets.abase({
+ 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
-- }}}
-- {{{ Wibox
+local spacer = wibox.widget.textbox()
+spacer:set_text(' | ')
-- Create a textclock widget
mytextclock = wibox.widget.textclock("%a %d %b %H:%M:%S", 1)
mytasklist.buttons = awful.util.table.join(
awful.button({ }, 1, function (c)
if c == client.focus then
- c.minimized = true
+ -- I don't like click-minimising
+ -- c.minimized = true
else
-- Without this, the following
-- :isvisible() makes no sense
layout = wibox.layout.fixed.horizontal,
mykeyboardlayout,
wibox.widget.systray(),
+ btc_widget,
+ spacer,
+ eth_widget,
+ spacer,
+ lain_bat.widget,
+ spacer,
mytextclock,
mylayoutbox[s],
},
},
callback = move_to_tag(screen.count() == 1 and 1 or 2, 8)
},
- { rule = { class = "chromium", instance = "chromium" },
+ { rule = { class = "Chromium", instance = "chromium" },
properties = {
floating = false,
},
callback = move_to_tag(screen.count() == 1 and 1 or 2, 9)
},
{ rule = { class = "Gscan2pdf" },
+ properties = {
+ switchtotag = true
+ },
callback = move_to_tag(1, 5)
},
{ rule = { name = "gscan2pdf .*" },
client.connect_signal("focus", function(c) c.border_color = beautiful.border_focus end)
client.connect_signal("unfocus", function(c) c.border_color = beautiful.border_normal end)
-awful.ewmh.add_activate_filter(function(c) if c.class == "Firefox" then return false end end)
+awful.ewmh.add_activate_filter(function(c, context, hints)
+ if context == "ewmh" and c.class == "Firefox" then return false end
+end)
-- vim:ft=lua:sw=4:sts=4:ts=4:et