It seems OpenBSD uses `f_frsize` instead of `f_bsize` to report correct disksize.
I also sent a pull-request upstream but it seems to be inactive since some time. Denis Index: Makefile =================================================================== RCS file: /cvs/ports/x11/i3status/Makefile,v diff -u -p -r1.67 Makefile --- Makefile 31 Mar 2025 14:37:47 -0000 1.67 +++ Makefile 30 Apr 2025 12:24:38 -0000 @@ -9,6 +9,8 @@ HOMEPAGE= https://i3wm.org/i3status/ MAINTAINER= Robert Nagy <rob...@openbsd.org> +REVISION= 0 + # BSD PERMIT_PACKAGE = Yes Index: patches/patch-src_print_disk_info_c =================================================================== RCS file: patches/patch-src_print_disk_info_c diff -N patches/patch-src_print_disk_info_c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-src_print_disk_info_c 30 Apr 2025 12:24:38 -0000 @@ -0,0 +1,29 @@ +Index: src/print_disk_info.c +--- src/print_disk_info.c.orig ++++ src/print_disk_info.c +@@ -73,13 +73,13 @@ static bool below_threshold(struct statvfs buf, const + } else if (strcasecmp(threshold_type, "percentage_avail") == 0) { + return 100.0 * (double)buf.f_bavail / (double)buf.f_blocks < low_threshold; + } else if (strcasecmp(threshold_type, "bytes_free") == 0) { +-#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(__APPLE__) +- return (double)buf.f_bsize * (double)buf.f_bfree < low_threshold; ++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) || defined(__APPLE__) ++ return (double)buf.f_size * (double)buf.f_bfree < low_threshold; + #else + return (double)buf.f_frsize * (double)buf.f_bfree < low_threshold; + #endif + } else if (strcasecmp(threshold_type, "bytes_avail") == 0) { +-#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(__APPLE__) ++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) || defined(__APPLE__) + return (double)buf.f_bsize * (double)buf.f_bavail < low_threshold; + #else + return (double)buf.f_frsize * (double)buf.f_bavail < low_threshold; +@@ -198,7 +198,7 @@ void print_disk_info(disk_info_ctx_t *ctx) { + char string_percentage_used[STRING_SIZE]; + char string_percentage_avail[STRING_SIZE]; + +-#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(__APPLE__) ++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__) || defined(__APPLE__) + print_bytes_human(string_free, (uint64_t)buf.f_bsize * (uint64_t)buf.f_bfree, ctx->prefix_type); + print_bytes_human(string_used, (uint64_t)buf.f_bsize * ((uint64_t)buf.f_blocks - (uint64_t)buf.f_bfree), ctx->prefix_type); + print_bytes_human(string_total, (uint64_t)buf.f_bsize * (uint64_t)buf.f_blocks, ctx->prefix_type);