diff options
author | Jan Tojnar <jtojnar@gmail.com> | 2023-03-07 13:23:26 +0100 |
---|---|---|
committer | Jan Tojnar <jtojnar@gmail.com> | 2023-03-07 13:28:35 +0100 |
commit | 8641500bef852b7bee3341ce2fde4a8947fe362d (patch) | |
tree | 31e86ed237e3f73bf806367879d30a1fef8d191c | |
parent | e39eca78a23f46b9ea08cd61507a94eb816012c3 (diff) | |
download | baobab-wip/jtojnar/occupied.tar.gz |
location-list: Make available space more accuratewip/jtojnar/occupied
On ext4 filesystem, 5% of space is reserved by default (i.e. ~100 GiB for a 2 TiB drive).
Let’s make use of the `filesystem::free` attribute when available, it is also what Nautilus uses.
This was exposed separately in the past but removed in
https://gitlab.gnome.org/GNOME/baobab/-/commit/f8501c44c89cae1fe40228de2ca24ec9efe4822d
-rw-r--r-- | src/baobab-location-list.vala | 5 | ||||
-rw-r--r-- | src/baobab-location.vala | 3 |
2 files changed, 5 insertions, 3 deletions
diff --git a/src/baobab-location-list.vala b/src/baobab-location-list.vala index 731e329..651c719 100644 --- a/src/baobab-location-list.vala +++ b/src/baobab-location-list.vala @@ -68,13 +68,14 @@ namespace Baobab { total_size_label.show(); if (location.used != null) { - available_label.label = _("%s Available").printf (format_size (location.size - location.used)); + var actually_used = location.used + (location.reserved ?? 0); + available_label.label = _("%s Available").printf (format_size (location.size - actually_used)); usage_bar.max_value = location.size; // Set critical color at 90% of the size usage_bar.add_offset_value (Gtk.LEVEL_BAR_OFFSET_LOW, 0.9 * location.size); - usage_bar.value = location.used; + usage_bar.value = actually_used; usage_bar.show (); } else { available_label.label = _("Unknown"); diff --git a/src/baobab-location.vala b/src/baobab-location.vala index 4954e57..78c138c 100644 --- a/src/baobab-location.vala +++ b/src/baobab-location.vala @@ -53,7 +53,8 @@ namespace Baobab { private const string FS_ATTRIBUTES = FileAttribute.FILESYSTEM_SIZE + "," + - FileAttribute.FILESYSTEM_USED; + FileAttribute.FILESYSTEM_USED + "," + + FileAttribute.FILESYSTEM_FREE; string get_hostname () throws Error { HostnameIface hostname_iface; |