diff --git a/src/main.zig b/src/main.zig index 60e71af..725171c 100644 --- a/src/main.zig +++ b/src/main.zig @@ -8,7 +8,6 @@ const calendar = @import("modules/calendar.zig"); const display = @import("modules/display.zig"); const uptime = @import("modules/uptime.zig"); const volume = @import("modules/volume.zig"); -const memory = @import("modules/memory.zig"); const Module = @import("module.zig"); pub fn main() !void { @@ -24,7 +23,6 @@ pub fn main() !void { var modules = [_]Module{ uptime.init(arena.allocator()).module, - memory.init(arena.allocator()).module, volume.init(arena.allocator()).module, display.init(arena.allocator()).module, battery.init(arena.allocator()).module, diff --git a/src/modules/memory.zig b/src/modules/memory.zig deleted file mode 100644 index 18c40e7..0000000 --- a/src/modules/memory.zig +++ /dev/null @@ -1,39 +0,0 @@ -const std = @import("std"); -const Module = @import("../module.zig"); -const Self = @This(); - -module: Module, - -pub fn init(allocator: std.mem.Allocator) Self { - return .{ - .module = .{ - .allocator = allocator, - .getJsonFn = getJson, - }, - }; -} - -pub fn getJson(module: *const Module) !Module.JSON { - const self = @fieldParentPtr(Self, "module", module); - - var meminfo_file = try std.fs.openFileAbsolute("/proc/meminfo", .{}); - defer meminfo_file.close(); - - const meminfo_string = try meminfo_file.reader().readAllAlloc(self.module.allocator, 4096); - const mem_total_idx = std.mem.indexOf(u8, meminfo_string, "MemTotal:"); - const mem_available_idx = std.mem.indexOf(u8, meminfo_string, "MemAvailable:"); - const mem_total_newline = std.mem.indexOfScalarPos(u8, meminfo_string, mem_total_idx.?, '\n'); - const mem_available_newline = std.mem.indexOfScalarPos(u8, meminfo_string, mem_available_idx.?, '\n'); - var mem_total_split = std.mem.splitBackwardsScalar(u8, meminfo_string[mem_total_idx.?..mem_total_newline.?], ' '); - var mem_available_split = std.mem.splitBackwardsScalar(u8, meminfo_string[mem_available_idx.?..mem_available_newline.?], ' '); - _ = mem_total_split.next(); - _ = mem_available_split.next(); - - const mem_total: f32 = @floatFromInt(try std.fmt.parseInt(usize, mem_total_split.next().?, 10)); - const mem_available: f32 = @floatFromInt(try std.fmt.parseInt(usize, mem_available_split.next().?, 10)); - const mem = mem_total - mem_available; - - return .{ - .full_text = try std.fmt.allocPrint(self.module.allocator, "{d:.3}/{d:.0} GB", .{ mem / 1000 / 1000, mem_total / 1000 / 1000 }), - }; -} diff --git a/src/modules/uptime.zig b/src/modules/uptime.zig index 351cfef..70260af 100644 --- a/src/modules/uptime.zig +++ b/src/modules/uptime.zig @@ -23,13 +23,13 @@ pub fn getJson(module: *const Module) !Module.JSON { var uptime_split = std.mem.splitScalar(u8, uptime_string[0 .. uptime_string.len - 1], ' '); var uptime = try std.fmt.parseFloat(f32, uptime_split.first()); - uptime /= 60; - const mins = @mod(uptime, 60); - uptime /= 60; - const hours = @mod(uptime, 24); - uptime /= 24; + const days = uptime / std.time.s_per_day; + uptime -= std.time.s_per_day * @floor(days); + const hours = uptime / std.time.s_per_hour; + uptime -= std.time.s_per_hour * @floor(hours); + const mins = uptime / std.time.s_per_min; return .{ - .full_text = try std.fmt.allocPrint(self.module.allocator, "{d:0>1.0}d {d:0>1.0}h {d:.0}m", .{ uptime, hours, mins }), + .full_text = try std.fmt.allocPrint(self.module.allocator, "{d:0>1.0}d {d:0>1.0}h {d:.0}m", .{ days, hours, mins }), }; }