From a34e72b42bfa681afba744a190d8bb3e26252310 Mon Sep 17 00:00:00 2001 From: Luca CPZ Date: Wed, 14 Mar 2018 12:17:13 +0100 Subject: [PATCH] widget.fs: adjust spacing in notifications when there are > 10 long paths --- lain-git.rockspec | 4 ++-- widget/fs.lua | 16 +++++++++++++--- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/lain-git.rockspec b/lain-git.rockspec index b0b73c6..3f1c2d5 100644 --- a/lain-git.rockspec +++ b/lain-git.rockspec @@ -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" } diff --git a/widget/fs.lua b/widget/fs.lua index e680a3c..358d4dd 100644 --- a/widget/fs.lua +++ b/widget/fs.lua @@ -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