diff options
| -rw-r--r-- | i3status.conf | 2 | ||||
| -rw-r--r-- | man/i3status.man | 5 | ||||
| -rw-r--r-- | src/print_disk_info.c | 23 | 
3 files changed, 25 insertions, 5 deletions
diff --git a/i3status.conf b/i3status.conf index 99640d0..5233041 100644 --- a/i3status.conf +++ b/i3status.conf @@ -45,5 +45,5 @@ load {  }  disk "/" { -        format = "%free" +        format = "%free (or: %percentage_used used, %percentage_used_of_avail used of avail, %percentage_free free, %percentage_avail avail)"  } diff --git a/man/i3status.man b/man/i3status.man index 5938acb..35cdb73 100644 --- a/man/i3status.man +++ b/man/i3status.man @@ -156,10 +156,15 @@ best available public IPv6 address on your computer).  Gets used, free, available and total amount of bytes on the given mounted filesystem. +These values can also be expressed in percentages with the percentage_used, +percentage_free, percentage_avail and percentage_used_of_avail formats. +  *Example order*: +disk /mnt/usbstick+  *Example format*: +%free (%avail)/ %total+ +*Example format*: +%percentage_used used, %percentage_free free, %percentage_avail avail+ +  === Run-watch  Expands the given path to a pidfile and checks if the process ID found inside diff --git a/src/print_disk_info.c b/src/print_disk_info.c index a3124a1..b577d23 100644 --- a/src/print_disk_info.c +++ b/src/print_disk_info.c @@ -86,10 +86,25 @@ void print_disk_info(yajl_gen json_gen, char *buffer, const char *path, const ch                          outwalk += print_bytes_human(outwalk, (uint64_t)buf.f_bsize * (uint64_t)buf.f_bavail);                          walk += strlen("avail");                  } -                 -                if (BEGINS_WITH(walk+1, "percentage")) { -                        outwalk += sprintf(outwalk, "%.01f%%", 100.0 - 100.0 * (double)buf.f_bavail / (double)buf.f_blocks); -                        walk += strlen("percentage"); + +                if (BEGINS_WITH(walk+1, "percentage_free")) { +                        outwalk += sprintf(outwalk, "%.01f%%", 100.0 * (double)buf.f_bfree / (double)buf.f_blocks); +                        walk += strlen("percentage_free"); +                } + +                if (BEGINS_WITH(walk+1, "percentage_used_of_avail")) { +                        outwalk += sprintf(outwalk, "%.01f%%", 100.0 * (double)(buf.f_blocks - buf.f_bavail) / (double)buf.f_blocks); +                        walk += strlen("percentage_used_of_avail"); +                } + +                if (BEGINS_WITH(walk+1, "percentage_used")) { +                        outwalk += sprintf(outwalk, "%.01f%%", 100.0 * (double)(buf.f_blocks - buf.f_bfree) / (double)buf.f_blocks); +                        walk += strlen("percentage_used"); +                } + +                if (BEGINS_WITH(walk+1, "percentage_avail")) { +                        outwalk += sprintf(outwalk, "%.01f%%", 100.0 * (double)buf.f_bavail / (double)buf.f_blocks); +                        walk += strlen("percentage_avail");                  }          }  | 
