]>
git.madduck.net Git - etc/awesome.git/blobdiff - widget/fs.lua
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:
local wibox = require("wibox")
local naughty = require("naughty")
local math = math
local wibox = require("wibox")
local naughty = require("naughty")
local math = math
-local sformat = string.format
local tconcat = table.concat
local tonumber = tonumber
local query_size = Gio.FILE_ATTRIBUTE_FILESYSTEM_SIZE
local tconcat = table.concat
local tonumber = tonumber
local query_size = Gio.FILE_ATTRIBUTE_FILESYSTEM_SIZE
local args = args or {}
local timeout = args.timeout or 600
local partition = args.partition
local args = args or {}
local timeout = args.timeout or 600
local partition = args.partition
+ local threshold = args.threshold or 99
local showpopup = args.showpopup or "on"
local settings = args.settings or function() end
local showpopup = args.showpopup or "on"
local settings = args.settings or function() end
- local notifytable = { [1] = sformat("%-10s %-5s %s\t%s\t\n", "fs", "used", "free", "size") }
+ local notifytable = { [1] = string.format("%-10s %-5s %s\t%s\t\n", "path", "used", "free", "size") }
+ local pathlen = 10
fs_now = {}
for _, mount in ipairs(Gio.unix_mounts_get()) do
fs_now = {}
for _, mount in ipairs(Gio.unix_mounts_get()) do
}
if fs_now[path].percentage > 0 then -- don't notify unused file systems
}
if fs_now[path].percentage > 0 then -- don't notify unused file systems
- notifytable[#notifytable+1] = sformat("\n%-10s %-5s %3.2f\t%3 .2f\t%s", path,
+ notifytable[#notifytable+1] = string.format("\n%-10s %-5s %.2f\t% .2f\t%s", path,
fs_now[path].percentage .. "%", fs_now[path].free, fs_now[path].size,
fs_now[path].units)
fs_now[path].percentage .. "%", fs_now[path].free, fs_now[path].size,
fs_now[path].units)
+
+ pathlen = math.max(pathlen, #path)
widget = fs.widget
settings()
widget = fs.widget
settings()
- if partition and fs_now[partition] and fs_now[partition].used >= 99 then
+ if partition and fs_now[partition] and fs_now[partition].percentage >= threshold then
if not helpers.get_map(partition) then
naughty.notify {
preset = naughty.config.presets.critical,
title = "Warning",
if not helpers.get_map(partition) then
naughty.notify {
preset = naughty.config.presets.critical,
title = "Warning",
- text = partition .. " is full",
+ text = string.format("%s is above %d%% (%d%%)", partition, threshold, fs_now[partition].percentage)
}
helpers.set_map(partition, true)
else
}
helpers.set_map(partition, true)
else
+ if pathlen > 10 then -- formatting aesthetics
+ for i = 1, #notifytable do
+ local pathspaces = notifytable[i]:match("/%w*[/%w*]*%s*") or notifytable[i]:match("path%s*")
+ notifytable[i] = notifytable[i]:gsub(pathspaces, pathspaces .. string.rep(" ", pathlen - 10) .. "\t")
+ end
+ end
+
fs.notification_preset.text = tconcat(notifytable)
end
fs.notification_preset.text = tconcat(notifytable)
end