X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/1973b16fdc6a371e6dadcf9b8f25196202013145..e418d9fb86e95043a678c207f0ca212c98341469:/widgets/imap.lua?ds=sidebyside

diff --git a/widgets/imap.lua b/widgets/imap.lua
index 1ebbb76..ec7bd1f 100644
--- a/widgets/imap.lua
+++ b/widgets/imap.lua
@@ -12,6 +12,7 @@ local async        = require("lain.asyncshell")
 local naughty      = require("naughty")
 local wibox        = require("wibox")
 
+local mouse        = mouse
 local string       = { format = string.format,
                        gsub   = string.gsub }
 local tonumber     = tonumber
@@ -22,17 +23,18 @@ local setmetatable = setmetatable
 -- lain.widgets.imap
 
 local function worker(args)
-    local imap     = {}
-    local args     = args or {}
+    local imap        = {}
+    local args        = args or {}
 
-    local server   = args.server
-    local mail     = args.mail
-    local password = args.password
+    local server      = args.server
+    local mail        = args.mail
+    local password    = args.password
 
-    local port     = args.port or 993
-    local timeout  = args.timeout or 60
-    local is_plain = args.is_plain or false
-    local settings = args.settings or function() end
+    local port        = args.port or 993
+    local timeout     = args.timeout or 60
+    local is_plain    = args.is_plain or false
+    local followmouse = args.followmouse or false
+    local settings    = args.settings or function() end
 
     local head_command  = "curl --connect-timeout 3 -fsm 3"
     local request = "-X 'SEARCH (UNSEEN)'"
@@ -42,7 +44,7 @@ local function worker(args)
     if not is_plain
     then
         local f = io.popen(password)
-        password = f:read("*a"):gsub("\n", "")
+        password = f:read("*all"):gsub("\n", "")
         f:close()
     end
 
@@ -54,11 +56,15 @@ local function worker(args)
             position = "top_left"
         }
 
+        if followmouse then
+            mail_notification_preset.screen = mouse.screen
+        end
+
         curl = string.format("%s --url imaps://%s:%s/INBOX -u %s:%q %s -k",
                head_command, server, port, mail, password, request)
 
         async.request(curl, function(f)
-            ws = f:read("*a")
+            ws = f:read("*all")
             f:close()
 
             _, mailcount = string.gsub(ws, "%d+", "")
@@ -76,7 +82,7 @@ local function worker(args)
                 end
                 naughty.notify({
                     preset = mail_notification_preset,
-                    text = nt,
+                    text = nt
                 })
             end