X-Git-Url: https://git.madduck.net/etc/awesome.git/blobdiff_plain/f291bd62b75e4d18b6e96fff845c3597640d92a7..f50543b4497c5055c51060b32eead6e51584d360:/widgets/fs.lua

diff --git a/widgets/fs.lua b/widgets/fs.lua
index a2d8990..a1d5d95 100644
--- a/widgets/fs.lua
+++ b/widgets/fs.lua
@@ -16,6 +16,7 @@ local naughty      = require("naughty")
 
 local io           = { popen  = io.popen }
 local pairs        = pairs
+local mouse        = mouse
 local string       = { match  = string.match,
                        format = string.format }
 local tonumber     = tonumber
@@ -25,9 +26,7 @@ local setmetatable = setmetatable
 -- File system disk space usage
 -- lain.widgets.fs
 local fs = {}
-
 local fs_notification  = nil
-fs_notification_preset = { fg = beautiful.fg_normal }
 
 function fs:hide()
     if fs_notification ~= nil then
@@ -39,14 +38,14 @@ end
 function fs:show(t_out)
     fs:hide()
 
-    naughty.notify({text=fs_notification_preset.screen})
+    local ws = helpers.read_pipe(helpers.scripts_dir .. "dfs"):gsub("\n*$", "")
 
-    local f = io.popen(helpers.scripts_dir .. "dfs")
-    ws = f:read("*all"):gsub("\n*$", "")
-    f:close()
+    if fs.followmouse then
+        fs.notification_preset.screen = mouse.screen
+    end
 
-    notification = naughty.notify({
-        preset  = fs_notification_preset,
+    fs_notification = naughty.notify({
+        preset  = fs.notification_preset,
         text    = ws,
         timeout = t_out
     })
@@ -56,10 +55,13 @@ end
 local unit = { ["mb"] = 1024, ["gb"] = 1024^2 }
 
 local function worker(args)
-    local args      = args or {}
-    local timeout   = args.timeout or 600
-    local partition = args.partition or "/"
-    local settings  = args.settings or function() end
+    local args             = args or {}
+    local timeout          = args.timeout or 600
+    local partition        = args.partition or "/"
+    local settings         = args.settings or function() end
+
+    fs.followmouse         = args.followmouse or false
+    fs.notification_preset = args.notification_preset or { fg = beautiful.fg_normal }
 
     fs.widget = wibox.widget.textbox('')