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:

cal: asynchronous
authorcopycat-killer <dada@archlinux.info>
Sun, 22 Jan 2017 00:15:57 +0000 (01:15 +0100)
committercopycat-killer <dada@archlinux.info>
Sun, 22 Jan 2017 00:15:57 +0000 (01:15 +0100)
22 files changed:
util/markup.lua
widgets/alsabar.lua
widgets/base.lua
widgets/bat.lua
widgets/calendar.lua
widgets/contrib/gpmdp.lua
widgets/contrib/kbdlayout.lua
widgets/contrib/moc.lua
widgets/contrib/redshift.lua
widgets/cpu.lua
widgets/fs.lua
widgets/imap.lua
widgets/maildir.lua
widgets/mem.lua
widgets/mpd.lua
widgets/net.lua
widgets/pulseaudio.lua
widgets/pulsebar.lua
widgets/sysload.lua
widgets/temp.lua
widgets/weather.lua
wiki

index d367bca51c69eac91b8a8073b25ff99726229848..0fc6ef6f37e88c0ccb11dbba5fe9236b95f9d019 100644 (file)
@@ -8,62 +8,46 @@
                                  
 --]]
 
-local beautiful    = require("beautiful")
-local tostring     = tostring
+local string       = { format = string.format }
 local setmetatable = setmetatable
 
 -- Lain markup util submodule
 -- lain.util.markup
 local markup = {}
 
-local fg = {}
-local bg = {}
-
 -- Convenience tags.
-function markup.bold(text)      return '<b>'     .. tostring(text) .. '</b>'     end
-function markup.italic(text)    return '<i>'     .. tostring(text) .. '</i>'     end
-function markup.strike(text)    return '<s>'     .. tostring(text) .. '</s>'     end
-function markup.underline(text) return '<u>'     .. tostring(text) .. '</u>'     end
-function markup.monospace(text) return '<tt>'    .. tostring(text) .. '</tt>'    end
-function markup.big(text)       return '<big>'   .. tostring(text) .. '</big>'   end
-function markup.small(text)     return '<small>' .. tostring(text) .. '</small>' end
+function markup.bold(text)      return '<b>'     .. text .. '</b>'     end
+function markup.italic(text)    return '<i>'     .. text .. '</i>'     end
+function markup.strike(text)    return '<s>'     .. text .. '</s>'     end
+function markup.underline(text) return '<u>'     .. text .. '</u>'     end
+function markup.monospace(text) return '<tt>'    .. text .. '</tt>'    end
+function markup.big(text)       return '<big>'   .. text .. '</big>'   end
+function markup.small(text)     return '<small>' .. text .. '</small>' end
 
 -- Set the font.
 function markup.font(font, text)
-  return '<span font="'  .. tostring(font)  .. '">' .. tostring(text) ..'</span>'
+  return '<span font="'  .. font  .. '">' .. text ..'</span>'
 end
 
 -- Set the foreground.
-function fg.color(color, text)
-  return '<span foreground="' .. tostring(color) .. '">' .. tostring(text) .. '</span>'
+function markup.fgcolor(color, text)
+  return '<span foreground="' .. color .. '">' .. text .. '</span>'
 end
 
 -- Set the background.
-function bg.color(color, text)
-  return '<span background="' .. tostring(color) .. '">' .. tostring(text) .. '</span>'
+function markup.bgcolor(color, text)
+  return '<span background="' .. color .. '">' .. text .. '</span>'
 end
 
--- Context: focus
-function fg.focus(text) return fg.color(beautiful.fg_focus, text) end
-function bg.focus(text) return bg.color(beautiful.bg_focus, text) end
-function markup.focus(text) return bg.focus(fg.focus(text)) end
-
--- Context: normal
-function fg.normal(text) return fg.color(beautiful.fg_normal, text) end
-function bg.normal(text) return bg.color(beautiful.bg_normal, text) end
-function markup.normal(text) return bg.normal(fg.normal(text)) end
-
--- Context: urgent
-function fg.urgent(text) return fg.color(beautiful.fg_urgent, text) end
-function bg.urgent(text) return bg.color(beautiful.bg_urgent, text) end
-function markup.urgent(text) return bg.urgent(fg.urgent(text)) end
-
-markup.fg = fg
-markup.bg = bg
+-- Set foreground and background.
+function markup.color(fg, bg, text)
+  return string.format('<span foreground="%s" background="%s">%s</span>', fg, bg, text)
+end
 
--- link markup.{fg,bg}(...) calls to markup.{fg,bg}.color(...)
-setmetatable(markup.fg, { __call = function(_, ...) return markup.fg.color(...) end })
-setmetatable(markup.bg, { __call = function(_, ...) return markup.bg.color(...) end })
+-- Set font, foreground and background.
+function markup.fontcolor(font, fg, bg, text)
+  return string.format('<span font="%s" foreground="%s" background="%s">%s</span>', font, fg, bg, text)
+end
 
 -- link markup(...) calls to markup.fg.color(...)
 return setmetatable(markup, { __call = function(_, ...) return markup.fg.color(...) end })
index 15ba31194582f496747079e8fe9d3099270f93da..f32e482a8d0852fcc334edd5144709d77bc18dcf 100644 (file)
@@ -8,19 +8,16 @@
 --]]
 
 local helpers      = require("lain.helpers")
-
 local awful        = require("awful")
 local beautiful    = require("beautiful")
 local naughty      = require("naughty")
 local wibox        = require("wibox")
-
 local math         = { modf   = math.modf }
 local string       = { format = string.format,
                        match  = string.match,
                        rep    = string.rep }
 local tonumber     = tonumber
 local type         = type
-
 local setmetatable = setmetatable
 
 -- ALSA volume bar
index af3d2c04fbf253f97058dd6bb28fe3136503f1e9..94ee58fa606e348357748de230b447a4bca19066 100644 (file)
@@ -9,7 +9,6 @@
 local newtimer     = require("lain.helpers").newtimer
 local read_pipe    = require("lain.helpers").read_pipe
 local wibox        = require("wibox")
-
 local setmetatable = setmetatable
 
 -- Basic template for custom widgets
index 0b1bc0c4e6a2d1097a5f3ebd9a3df9badb6a0d6f..ea749d3614c9179e9b1f5397fe4d86af7d030bf7 100644 (file)
 local first_line   = require("lain.helpers").first_line
 local make_widget  = require("lain.helpers").make_widget_textbox
 local newtimer     = require("lain.helpers").newtimer
-
 local naughty      = require("naughty")
 local wibox        = require("wibox")
-
 local math         = { abs    = math.abs,
                        floor  = math.floor,
                        log10  = math.log10,
                        min    = math.min }
 local string       = { format = string.format }
-
 local ipairs       = ipairs
 local type         = type
 local tonumber     = tonumber
index 76faca493e224d3aa2fa839f7fe85bafd5ab8fb4..a00cabaa170a3dbd98d4311f4e7595aca94dcfba 100644 (file)
@@ -6,53 +6,45 @@
                                                   
 --]]
 
+local async        = require("lain.helpers").async
 local icons_dir    = require("lain.helpers").icons_dir
-
+local markup       = require("lain.util.markup")
 local awful        = require("awful")
-local beautiful    = require("beautiful")
 local naughty      = require("naughty")
-
-local io           = { popen = io.popen }
-local os           = { date = os.date }
+local os           = { date   = os.date }
 local string       = { format = string.format,
-                       sub    = string.sub,
                        gsub   = string.gsub }
 local tonumber     = tonumber
-
 local setmetatable = setmetatable
 
 -- Calendar notification
 -- lain.widgets.calendar
-local calendar = {}
-local cal_notification = nil
+local calendar = { offset = 0 }
 
 function calendar.hide()
-    if cal_notification ~= nil then
-        naughty.destroy(cal_notification)
-        cal_notification = nil
-    end
+    if not calendar.notification then return end
+    naughty.destroy(calendar.notification)
+    calendar.notification = nil
 end
 
 function calendar.show(t_out, inc_offset, scr)
     calendar.hide()
 
-    local f, c_text
-    local offs  = inc_offset or 0
-    local tims  = t_out or 0
-    local today = tonumber(os.date('%d'))
+    local today = os.date("%d")
+    local offs = inc_offset or 0
+    local f
 
     calendar.offset = calendar.offset + offs
 
-    if offs == 0 or calendar.offset == 0
-    then -- current month showing, today highlighted
+    local current_month = (offs == 0 or calendar.offset == 0)
+
+    if current_month then -- today highlighted
         calendar.offset = 0
         calendar.notify_icon = string.format("%s%s.png", calendar.icons, today)
-
-        -- bg and fg inverted to highlight today
-        f = io.popen(calendar.cal_format(today))
+        f = calendar.cal
     else -- no current month showing, no day to highlight
-       local month = tonumber(os.date('%m'))
-       local year  = tonumber(os.date('%Y'))
+       local month = tonumber(os.date("%m"))
+       local year  = tonumber(os.date("%Y"))
 
        month = month + calendar.offset
 
@@ -67,53 +59,40 @@ function calendar.show(t_out, inc_offset, scr)
        end
 
        calendar.notify_icon = nil
-       f = io.popen(string.format('%s %s %s', calendar.cal, month, year))
+       f = string.format("%s %s %s", calendar.cal, month, year)
     end
 
-    c_text = "<tt><span font='" .. calendar.font .. " "
-             .. calendar.font_size .. "'><b>"
-             .. f:read() .. "</b>\n\n"
-             .. f:read() .. "\n"
-             .. f:read("*all"):gsub("\n*$", "")
-             .. "</span></tt>"
-    f:close()
-
     if calendar.followtag then
-        scrp = awful.screen.focused()
+        calendar.notification_preset.screen = awful.screen.focused()
     else
-        scrp = scr or calendar.scr_pos
+        calendar.notification_preset.screen = src or 1
     end
 
-    cal_notification = naughty.notify({
-        text = c_text,
-        icon = calendar.notify_icon,
-        position = calendar.position,
-        fg = calendar.fg,
-        bg = calendar.bg,
-        timeout = tims,
-        screen = scrp
-    })
+    async(string.format("%s -c '%s'", awful.util.shell, f), function(ws)
+        fg, bg = calendar.notification_preset.fg, calendar.notification_preset.bg
+        ws = ws:gsub("%c%[7m%d+%c%[27m", markup.bold(markup.color(bg, fg, today)))
+        calendar.notification = naughty.notify({
+            preset  = calendar.notification_preset,
+            text    = ws:gsub("\n*$", ""),
+            icon    = calendar.notify_icon,
+            timeout = t_out or calendar.notification.preset.timeout or 5
+        })
+    end)
 end
 
 function calendar.attach(widget, args)
-    local args = args or {}
-
-    calendar.cal         = args.cal or "/usr/bin/cal"
-    calendar.cal_format  = args.cal_format or function(today)
-        return string.format("%s | sed -r -e 's/_\\x08//g' -e '0,/(^| )%d($| )/ s/(^| )%d($| )/\\1<b><span foreground=\"%s\" background=\"%s\">%d<\\/span><\\/b>\\2/'",
-                             calendar.cal, today, today, calendar.bg, calendar.fg, today)
+    local args                   = args or {}
+    calendar.cal                 = args.cal or "/usr/bin/cal --color=always"
+    calendar.followtag           = args.followtag or false
+    calendar.icons               = args.icons or icons_dir .. "cal/white/"
+    calendar.notification_preset = args.notification_preset
+
+    if not calendar.notification_preset then
+        calendar.notification_preset      = naughty.config.defaults
+        calendar.notification_preset.font = "Monospace 10"
+        calendar.notification_preset.fg   = "#FFFFFF"
+        calendar.notification_preset.bg   = "#000000"
     end
-    calendar.icons       = args.icons or icons_dir .. "cal/white/"
-    calendar.font        = args.font or beautiful.font:gsub(" %d.*", "")
-    calendar.font_size   = tonumber(args.font_size) or 11
-    calendar.fg          = args.fg or beautiful.fg_normal or "#FFFFFF"
-    calendar.bg          = args.bg or beautiful.bg_normal or "#000000"
-    calendar.position    = args.position or "top_right"
-    calendar.scr_pos     = args.scr_pos or 1
-    calendar.followtag   = args.followtag or false
-
-    calendar.offset      = 0
-    calendar.notify_icon = nil
 
     widget:connect_signal("mouse::enter", function () calendar.show(0, 0, calendar.scr_pos) end)
     widget:connect_signal("mouse::leave", function () calendar.hide() end)
index de82b1e8ca6f7aaadab7fd4e40941d1dd79b2e77..811d1f6a3493c0dd17a11dda2d51f5458dab4202 100644 (file)
@@ -8,16 +8,14 @@
 
 local helpers      = require("lain.helpers")
 local json         = require("lain.util.dkjson")
-
 local focused      = require("awful.screen").focused
 local pread        = require("awful.util").pread
 local naughty      = require("naughty")
 local wibox        = require("wibox")
-
 local next         = next
 local os           = { getenv = os.getenv }
-local setmetatable = setmetatable
 local table        = table
+local setmetatable = setmetatable
 
 -- Google Play Music Desktop infos
 -- lain.widget.contrib.gpmdp
index cd753f6eb61d147b76be94db176507152c4eed77..3b514c5d01db47c4d9281b2d1360e32e32bf98e0 100644 (file)
@@ -7,22 +7,20 @@
 --]]
 
 local helpers      = require("lain.helpers")
-
 local awful        = require("awful")
 local wibox        = require("wibox")
-
 local string       = { format = string.format,
                        match  = string.match }
 local execute      = os.execute
-
 local setmetatable = setmetatable
 
 -- Keyboard layout switcher
 -- lain.widgets.contrib.kblayout
+local kbdlayout = helpers.make_widget_textbox()
 
 local function worker(args)
-   local kbdlayout        = {}
-   local layouts          = args.layouts
+   local args             = args or {}
+   local layouts          = args.layouts or {}
    local settings         = args.settings or function () end
    local add_us_secondary = true
    local timeout          = args.timeout or 5
@@ -30,14 +28,7 @@ local function worker(args)
 
    if args.add_us_secondary == false then add_us_secondary = false end
 
-   kbdlayout.widget = wibox.widget.textbox()
-
-   -- Mouse bindings
-   kbdlayout.widget:buttons(awful.util.table.join(
-                              awful.button({ }, 1, function () kbdlayout.next() end),
-                              awful.button({ }, 3, function () kbdlayout.prev() end)))
-
-   local function run_settings(layout, variant)
+   local function kbd_run_settings(layout, variant)
       kbdlayout_now = {
           layout  = string.match(layout, "[^,]+"), -- Make sure to match the primary layout only.
           variant = variant
@@ -49,12 +40,13 @@ local function worker(args)
    function kbdlayout.update()
       helpers.async(string.format("%s -c 'setxkbmap -query'", awful.util.shell),
       function(status)
-          run_settings(string.match(status, "layout:%s*([^\n]*)"),
+          kbd_run_settings(string.match(status, "layout:%s*([^\n]*)"),
           string.match(status, "variant:%s*([^\n]*)"))
       end)
    end
 
    function kbdlayout.set(i)
+      if #layouts == 0 then return end
       idx = ((i - 1) % #layouts) + 1 -- Make sure to wrap around as needed.
       local to_execute = "setxkbmap " .. layouts[idx].layout
 
@@ -67,17 +59,17 @@ local function worker(args)
       end
 
       if execute(to_execute) then
-         run_settings(layouts[idx].layout, layouts[idx].variant)
+         kbd_run_settings(layouts[idx].layout, layouts[idx].variant)
       end
    end
 
-   function kbdlayout.next()
-      kbdlayout.set(idx + 1)
-   end
+   function kbdlayout.next() kbdlayout.set(idx + 1) end
+   function kbdlayout.prev() kbdlayout.set(idx - 1) end
 
-   function kbdlayout.prev()
-      kbdlayout.set(idx - 1)
-   end
+   -- Mouse bindings
+   kbdlayout.widget:buttons(awful.util.table.join(
+                              awful.button({ }, 1, function () kbdlayout.next() end),
+                              awful.button({ }, 3, function () kbdlayout.prev() end)))
 
    helpers.newtimer("kbdlayout", timeout, kbdlayout.update)
 
index f19b0d39d25e6057550c1a85b2e96dd9a0d9cab8..44f46a66ef1ff21fe4d77e3427bc05d7298b11cc 100644 (file)
@@ -7,17 +7,14 @@
 --]]
 
 local helpers      = require("lain.helpers")
-
 local shell        = require("awful.util").shell
 local focused      = require("awful.screen").focused
 local escape_f     = require("awful.util").escape
 local naughty      = require("naughty")
 local wibox        = require("wibox")
-
 local os           = { getenv = os.getenv }
 local string       = { format = string.format,
                        gmatch = string.gmatch }
-
 local setmetatable = setmetatable
 
 -- MOC audio player
index 25ae0236c59db7c6c3708112747b2ee61319744a..8a768fb8fac0cde959157f968dccad2fd6bae3c1 100644 (file)
@@ -6,72 +6,47 @@
                                                         
 --]]
 
-local awful        = require("awful")
-local os           = os
-
-local setmetatable = setmetatable
+local async   = require("lain.helpers").async
+local awful   = require("awful")
+local execute = os.execute
+local type    = type
 
 -- Redshift
 -- lain.widgets.contrib.redshift
-local redshift = {}
-
-local attached    = false           -- true if attached to a widget
-local active      = false           -- true if redshift is active
-local running     = false           -- true if redshift was initialized
-local update_fnct = function() end  -- Function that is run each time redshift is toggled. See redshift:attach().
-
-local function init()
-    -- As there is no way to determine if redshift was previously
-    -- toggled off (i.e Awesome on-the-fly restart), kill redshift to make sure
-    os.execute("pkill redshift")
-    -- Remove existing color adjustment
-    awful.spawn.with_shell("redshift -x")
-    -- (Re)start redshift
-    awful.spawn.with_shell("redshift")
-    running = true
-    active = true
-end
-
-function redshift:toggle()
-    if running then
-        -- Sending -USR1 toggles redshift (See project website)
-        os.execute("pkill -USR1 redshift")
-        active = not active
-    else
-        init()
-    end
-    update_fnct()
-end
-
-function redshift:off()
-    if running and active then
-        redshift:toggle()
+local redshift = { active = false, pid = nil }
+
+function redshift:start()
+    execute("pkill redshift")
+    awful.spawn.with_shell("redshift -x") -- clear adjustments
+    redshift.pid = awful.spawn.with_shell("redshift")
+    redshift.active = true
+    if type(redshift.update_fun) == "function" then
+        redshift.update_fun(redshift.active)
     end
 end
 
-function redshift:on()
-    if not active then
-        redshift:toggle()
-    end
-end
-
-function redshift:is_active()
-    return active
+function redshift:toggle()
+    async(string.format("%s -c 'ps -p %d -o pid='", awful.util.shell, redshift.pid), function(f)
+        if f and #f > 0 then -- redshift is running
+            -- Sending -USR1 toggles redshift (See project website)
+            execute("pkill -USR1 redshift")
+            redshift.active = not redshift.active
+        else -- not started or killed, (re)start it
+            redshift:start()
+        end
+        redshift.update_fun(redshift.active)
+    end)
 end
 
 -- Attach to a widget
 -- Provides a button which toggles redshift on/off on click
 -- @param widget:  Widget to attach to.
--- @param fnct:    Function to be run each time redshift is toggled (optional).
+-- @param fun:     Function to be run each time redshift is toggled (optional).
 --                 Use it to update widget text or icons on status change.
-function redshift:attach(widget, fnct)
-    update_fnct  = fnct or function() end
-    if not attached then
-        init()
-        attached = true
-        update_fnct()
-    end
-    widget:buttons(awful.util.table.join( awful.button({}, 1, function () redshift:toggle() end) ))
+function redshift:attach(widget, fun)
+    redshift.update_fun = fun or function() end
+    if not redshift.pid then redshift:start() end
+    widget:buttons(awful.util.table.join(awful.button({}, 1, function () redshift:toggle() end)))
 end
 
-return setmetatable(redshift, { _call = function(_, ...) return create(...) end })
+return redshift
index c33c7eb68736692b9eede3e456b0cf616b474e8d..c2945664f045f09377d13b818959572a08039deb 100644 (file)
@@ -9,14 +9,11 @@
 
 local lines_match  = require("lain.helpers").lines_match
 local newtimer     = require("lain.helpers").newtimer
-
 local wibox        = require("wibox")
-
 local math         = { ceil   = math.ceil }
 local string       = { format = string.format,
                        gmatch = string.gmatch }
 local tostring     = tostring
-
 local setmetatable = setmetatable
 
 -- CPU usage
index b48fcd02506baf6aa6339bffa86aa0f3da279ad3..faa803804b4db8885a989368f5a48c92a2a4b018 100644 (file)
@@ -9,7 +9,6 @@
 local helpers      = require("lain.helpers")
 
 local shell        = require("awful.util").shell
-local beautiful    = require("beautiful")
 local focused      = require("awful.screen").focused
 local wibox        = require("wibox")
 local naughty      = require("naughty")
@@ -62,7 +61,7 @@ local function worker(args)
 
     fs.options             = args.options
     fs.followtag           = args.followtag or false
-    fs.notification_preset = args.notification_preset or { fg = beautiful.fg_normal }
+    fs.notification_preset = args.notification_preset or naughty.config.defaults
 
     fs.widget = wibox.widget.textbox()
 
@@ -101,7 +100,7 @@ local function worker(args)
 
             if notify == "on" and tonumber(fs_now.used) >= 99 and not helpers.get_map(partition) then
                 naughty.notify({
-                    title   = "warning",
+                    title   = "Warning",
                     text    = partition .. " is empty!",
                     timeout = 8,
                     fg      = "#000000",
index 60a55090bbd79597c7d6dab22b5e475921b585e6..0f8d994d09e75600f0f70a87d20f9ecbee6b5578 100644 (file)
@@ -7,15 +7,12 @@
 --]]
 
 local helpers      = require("lain.helpers")
-
 local shell        = require("awful.util").shell
 local naughty      = require("naughty")
 local wibox        = require("wibox")
-
 local string       = { format = string.format,
                        gsub   = string.gsub }
 local tonumber     = tonumber
-
 local setmetatable = setmetatable
 
 -- Mail IMAP check
@@ -59,6 +56,7 @@ local function worker(args                           )
 
         helpers.async(curl, function(f)
             _, mailcount = string.gsub(f, "%d+", "")
+            _ = nil
 
             widget = imap.widget
             settings()
index 2f435b3294aafae65f4cfb5526e87d511d3b1d28..bef09f4a4527d22d2033064c6dd759b7933f64ad 100644 (file)
 local awful        = require("awful")
 local wibox        = require("wibox")
 local helpers      = require("lain.helpers")
-
 local io           = { popen  = io.popen }
 local os           = { getenv = os.getenv }
 local string       = { format = string.format,
                        match  = string.match }
-
 local setmetatable = setmetatable
 
 -- Maildir check (synchronous)
index aede803c0c9a50fe8aef6f051efcc72e19a767ad..7f4f346b99d7ae8880e00f465212855529c5f902 100644 (file)
@@ -8,13 +8,10 @@
 --]]
 
 local newtimer     = require("lain.helpers").newtimer
-
 local wibox        = require("wibox")
-
 local io           = { lines  = io.lines }
 local math         = { floor  = math.floor }
 local string       = { gmatch = string.gmatch }
-
 local setmetatable = setmetatable
 
 -- Memory usage (ignoring caches)
@@ -26,14 +23,12 @@ local function worker(args)
     local timeout  = args.timeout or 2
     local settings = args.settings or function() end
 
-    mem.widget = wibox.widget.textbox('')
+    mem.widget = wibox.widget.textbox()
 
     function update()
         mem_now = {}
-        for line in io.lines("/proc/meminfo")
-        do
-            for k, v in string.gmatch(line, "([%a]+):[%s]+([%d]+).+")
-            do
+        for line in io.lines("/proc/meminfo") do
+            for k, v in string.gmatch(line, "([%a]+):[%s]+([%d]+).+") do
                 if     k == "MemTotal"  then mem_now.total = math.floor(v / 1024)
                 elseif k == "MemFree"   then mem_now.free  = math.floor(v / 1024)
                 elseif k == "Buffers"   then mem_now.buf   = math.floor(v / 1024)
index defa710ac602b5013a15d0d052f20e50c7e11ad1..6011e0327aa27a222286484797efe657ccc5a742 100644 (file)
@@ -8,18 +8,15 @@
 --]]
 
 local helpers      = require("lain.helpers")
-
 local shell        = require("awful.util").shell
 local escape_f     = require("awful.util").escape
 local focused      = require("awful.screen").focused
 local naughty      = require("naughty")
 local wibox        = require("wibox")
-
 local os           = { getenv = os.getenv }
 local string       = { format = string.format,
                        gmatch = string.gmatch,
                        match  = string.match }
-
 local setmetatable = setmetatable
 
 -- MPD infos
index 83ac6bf7791bba27ca30760d5f50f1c697aff0ad..ff1607517687226b8184c6e44c93f1d022cd82d3 100644 (file)
 local helpers      = require("lain.helpers")
 local naughty      = require("naughty")
 local wibox        = require("wibox")
-
 local shell        = require("awful.util").shell
-
 local string       = { format = string.format,
                        match  = string.match }
-
 local setmetatable = setmetatable
 
 -- Network infos
index 15bea8b3bddfc08b3baa6142b5de775a1afa97d1..45981f39aec8c90d2c78f69737c76d70f269aa1e 100644 (file)
@@ -9,11 +9,9 @@
 local read_pipe    = require("lain.helpers").read_pipe
 local newtimer     = require("lain.helpers").newtimer
 local wibox        = require("wibox")
-
 local string       = { gmatch = string.gmatch,
                        match  = string.match,
                        format = string.format }
-
 local setmetatable = setmetatable
 
 -- PulseAudio volume
@@ -27,7 +25,7 @@ local function worker(args)
    local scallback   = args.scallback
 
    pulseaudio.cmd    = args.cmd or string.format("pacmd list-sinks | sed -n -e '0,/*/d' -e '/base volume/d' -e '/volume:/p' -e '/muted:/p' -e '/device\\.string/p'")
-   pulseaudio.widget = wibox.widget.textbox('')
+   pulseaudio.widget = wibox.widget.textbox()
 
    function pulseaudio.update()
       if scallback then pulseaudio.cmd = scallback() end
index bacd96943a4fcb26537f17e3b4dca3623f7f37eb..b7fb1e97322984f9f87fcd2009cf2f79a9566af5 100644 (file)
@@ -9,19 +9,16 @@
 
 local newtimer     = require("lain.helpers").newtimer
 local read_pipe    = require("lain.helpers").read_pipe
-
 local awful        = require("awful")
 local beautiful    = require("beautiful")
 local naughty      = require("naughty")
 local wibox        = require("wibox")
-
 local math         = { modf   = math.modf }
 local mouse        = mouse
 local string       = { format = string.format,
                        match  = string.match,
                        rep    = string.rep }
 local tonumber     = tonumber
-
 local setmetatable = setmetatable
 
 -- Pulseaudio volume bar
index d8e4713a77371088c2ac14693b1183b97ef4517a..215fd6230118dc130d48217094f03bd16b2ba43d 100644 (file)
@@ -8,12 +8,9 @@
 --]]
 
 local newtimer     = require("lain.helpers").newtimer
-
 local wibox        = require("wibox")
-
 local io           = { open = io.open }
 local string       = { match  = string.match }
-
 local setmetatable = setmetatable
 
 -- System load
@@ -25,7 +22,7 @@ local function worker(args)
     local timeout = args.timeout or 2
     local settings = args.settings or function() end
 
-    sysload.widget = wibox.widget.textbox('')
+    sysload.widget = wibox.widget.textbox()
 
     function update()
         local f = io.open("/proc/loadavg")
index a4ada5276de7d667d8ad8fb5c155935651f099c3..9c82b8b62823edecd2b3367e204a548fce4a0574 100644 (file)
@@ -7,12 +7,9 @@
 --]]
 
 local newtimer     = require("lain.helpers").newtimer
-
 local wibox        = require("wibox")
-
 local io           = { open = io.open }
 local tonumber     = tonumber
-
 local setmetatable = setmetatable
 
 -- coretemp
@@ -25,10 +22,11 @@ local function worker(args)
     local tempfile = args.tempfile or "/sys/class/thermal/thermal_zone0/temp"
     local settings = args.settings or function() end
 
-    temp.widget = wibox.widget.textbox('')
+    temp.widget = wibox.widget.textbox()
 
     function update()
         local f = io.open(tempfile)
+        local coretemp_now
         if f then
             coretemp_now = tonumber(f:read("*all")) / 1000
             f:close()
index 17b3d3463737ef338b79ed8ceeece3b873a4cb73..32e306560c6f6292ad8246a124043c9baa29101b 100644 (file)
@@ -10,19 +10,15 @@ local async        = require("lain.helpers").async
 local newtimer     = require("lain.helpers").newtimer
 local lain_icons   = require("lain.helpers").icons_dir
 local json         = require("lain.util").dkjson
-
 local focused      = require("awful.screen").focused
 local naughty      = require("naughty")
 local wibox        = require("wibox")
-
 local math         = { floor    = math.floor }
 local os           = { time     = os.time,
                        date     = os.date,
                        difftime = os.difftime }
 local string       = { format   = string.format,
                        gsub     = string.gsub }
-
-local mouse        = mouse
 local tonumber     = tonumber
 local setmetatable = setmetatable
 
diff --git a/wiki b/wiki
index bfdf6d24310d0822bac3447c39bb93cb83a75f77..eb533f62754d1403e01048b7f2006ab2d8c94b11 160000 (submodule)
--- a/wiki
+++ b/wiki
@@ -1 +1 @@
-Subproject commit bfdf6d24310d0822bac3447c39bb93cb83a75f77
+Subproject commit eb533f62754d1403e01048b7f2006ab2d8c94b11