widget.fs: adjust spacing in notifications when there are > 10 long paths

This commit is contained in:
Luca CPZ 2018-03-14 12:17:13 +01:00
parent 396b54d612
commit a34e72b42b
2 changed files with 15 additions and 5 deletions

View File

@ -9,7 +9,7 @@ description = {
detailed = [[
Successor of awesome-vain, this module provides alternative layouts, asynchronous widgets and utility functions for Awesome WM.
Dependencies: curl (for IMAP, MPD and weather widgets); Glib >= 2.5.4 (for filesystems widget).
Dependencies: curl (for IMAP, MPD and weather widgets); Glib >= 2.54 (for filesystems widget).
]],
homepage = "https://github.com/lcpz/lain",
license = "GPL-2.0"
@ -17,7 +17,7 @@ description = {
dependencies = {
"lua >= 5.1",
"awesome >= 4.0",
"Glib >= 2.5.4",
"Glib >= 2.54",
"curl"
}
supported_platforms = { "linux" }

View File

@ -13,7 +13,7 @@ local focused = require("awful.screen").focused
local wibox = require("wibox")
local naughty = require("naughty")
local math = math
local sformat = string.format
local string = string
local tconcat = table.concat
local tonumber = tonumber
local query_size = Gio.FILE_ATTRIBUTE_FILESYSTEM_SIZE
@ -67,7 +67,8 @@ local function factory(args)
end
function fs.update()
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
@ -92,9 +93,11 @@ local function factory(args)
}
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)
pathlen = math.max(pathlen, #path)
end
end
end
@ -116,6 +119,13 @@ local function factory(args)
end
end
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