bigclock: add 12-hour & seconds support (#805)

Added P,A,M characters to bigclock and added 12hr and seconds support to bigclock via `bigclock_12hr` and `bigclock_seconds` in the config.
![image](/attachments/e95accff-4822-4801-8159-94411a6c644f)
Image has bigclock_12hr and bigclock_seconds enabled.

Farsi characters for P,A,M are blank since I don't know what it would look like in their language. (should i have just used the english characters as a placeholder?)

Reviewed-on: https://codeberg.org/fairyglade/ly/pulls/805
Reviewed-by: AnErrupTion <anerruption@disroot.org>
Co-authored-by: RadsammyT <radsammyt@gmail.com>
Co-committed-by: RadsammyT <radsammyt@gmail.com>
This commit is contained in:
RadsammyT
2025-08-03 11:16:04 +02:00
committed by AnErrupTion
parent 4fbbb6f0f2
commit b382d74969
7 changed files with 67 additions and 5 deletions

View File

@@ -482,11 +482,19 @@ pub fn main() !void {
}
if (config.bigclock != .none and buffer.box_height + (bigclock.HEIGHT + 2) * 2 < buffer.height) {
const format = "%H:%M";
var format_buf: [16:0]u8 = undefined;
var clock_buf: [32:0]u8 = undefined;
// We need the slice/c-string returned by `bufPrintZ`.
const format: [:0]const u8 = try std.fmt.bufPrintZ(&format_buf, "{s}{s}{s}{s}",
.{
if (config.bigclock_12hr) "%I" else "%H",
":%M",
if (config.bigclock_seconds) ":%S" else "",
if (config.bigclock_12hr) "%P" else ""
});
const xo = buffer.width / 2 - @min(buffer.width, (format.len * (bigclock.WIDTH + 1))) / 2;
const yo = (buffer.height - buffer.box_height) / 2 - bigclock.HEIGHT - 2;
var clock_buf: [format.len + 1:0]u8 = undefined;
const clock_str = interop.timeAsString(&clock_buf, format);
for (clock_str, 0..) |c, i| {