summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--i3status.conf2
-rw-r--r--man/i3status.man5
-rw-r--r--src/print_disk_info.c23
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");
}
}