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 = [[ detailed = [[
Successor of awesome-vain, this module provides alternative layouts, asynchronous widgets and utility functions for Awesome WM. 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", homepage = "https://github.com/lcpz/lain",
license = "GPL-2.0" license = "GPL-2.0"
@ -17,7 +17,7 @@ description = {
dependencies = { dependencies = {
"lua >= 5.1", "lua >= 5.1",
"awesome >= 4.0", "awesome >= 4.0",
"Glib >= 2.5.4", "Glib >= 2.54",
"curl" "curl"
} }
supported_platforms = { "linux" } supported_platforms = { "linux" }

View file

@ -13,7 +13,7 @@ local focused = require("awful.screen").focused
local wibox = require("wibox") local wibox = require("wibox")
local naughty = require("naughty") local naughty = require("naughty")
local math = math local math = math
local sformat = string.format local string = string
local tconcat = table.concat local tconcat = table.concat
local tonumber = tonumber local tonumber = tonumber
local query_size = Gio.FILE_ATTRIBUTE_FILESYSTEM_SIZE local query_size = Gio.FILE_ATTRIBUTE_FILESYSTEM_SIZE
@ -67,7 +67,8 @@ local function factory(args)
end end
function fs.update() 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 = {} fs_now = {}
for _, mount in ipairs(Gio.unix_mounts_get()) do 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 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].percentage .. "%", fs_now[path].free, fs_now[path].size,
fs_now[path].units) fs_now[path].units)
pathlen = math.max(pathlen, #path)
end end
end end
end end
@ -116,6 +119,13 @@ local function factory(args)
end end
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) fs.notification_preset.text = tconcat(notifytable)
end end