diff --git a/README.md b/README.md index 682325d..a83e70d 100644 --- a/README.md +++ b/README.md @@ -4,34 +4,16 @@ root window (mostly I only see one window taking up the entire screen, with a dmenu at the top, and another dmenu at the bottom that runs conky). I run conky in CLI mode only, and that's good enough for me. -I pipe the output of conky through dmenu, which upates every two seconds. I -also have custom formatting functions (see scripts.lua in this repository). -This ensures the output of conky has the same length, even if certain fields -within the string change. This is especially useful for the network bandwidth -output, which otherwise change length every two seconds as the bandwidth usage +I pipe the output of conky through dmenu, which upates every second. I also +have custom formatting functions (see scripts.lua in this repository). This +ensures the output of conky has the same length, even if certain fields within +the string change. This is especially useful for the network bandwidth output, +which otherwise change length every two seconds as the bandwidth usage fluctuates between bytes (B), Kilobytes (KiB), and Megabytes (MiB). -TODO: My formatting function needs to be generalized. Essentially, I'm -creating a conky-specific printf function. Right now, it's split into two -functions, with calls to the Lua string.format function. One function takes -only one format specifier, and the other takes two. +I have implemented `conky_printf`, a generalized function for printing conky +data to the output string. It needs more testing, as I'm sure there are edge +cases where it doesn't work properly. -The `fmt()` function takes the format string, and expects a single numerical -second argument. If the format string contains any format specifiers (see `man -sprintf` for details) that aren't numbers (e.g. `%s` for strings), fmt() will -fail with an error. I use this for the percentages of RAM, Swap, and CPU in -use. - -The `fmt2()` function takes the format string, and expects two string arguments. -It is not necessarily an error if either or both of the arguments are numbers, -they will be cast to strings. I use this function to format the bandwidth -("Net:") display in conky, so the length of this segment doesn't shift around -(the Unicode arrow icons for up and down bandwidth stay in the same place). - -Ideally these two functions would be combined into a `"conky_printf` function, -that could take an arbitrary format string with any number of format -specifiers, with the requisite number of numerical or string arguments. I know -how to do this with the `...`/`arg`/`unpack(arg)` table specification in Lua, -but numeric specifiers need to convert any strings passed to the function to -numeric values instead of strings. This is the challenging part, but should be -doable. +TODO: Add color to the conky output! That will take if statments, and text +for dmenu to consume.