From 7f0f8c9ed32942a5543a4268e56ac01eead808b9 Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Mon, 12 Aug 2024 23:24:10 +0200 Subject: [PATCH] feat: set terminal background to match editor --- build.zig.zon | 4 ++-- src/renderer/vaxis/renderer.zig | 11 +++++++++++ src/tui/tui.zig | 3 +++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/build.zig.zon b/build.zig.zon index adaded7..de87764 100644 --- a/build.zig.zon +++ b/build.zig.zon @@ -29,8 +29,8 @@ .hash = "122019f077d09686b1ec47928ca2b4bf264422f3a27afc5b49dafb0129a4ceca0d01", }, .vaxis = .{ - .url = "https://github.com/rockorager/libvaxis/archive/22516a971c0c391c6464d1c39e114c286adb02de.tar.gz", - .hash = "12203ae4ac20a34f45bace1e73c16a7779cae45d53e8f168909bb6f6e224408a6884", + .url = "https://github.com/neurocyte/libvaxis/archive/6a40aa02c8130b34ded52f5ea7e636eb52e589b7.tar.gz", + .hash = "122053de0d1b7692e0eb01768abace0d512a4a23285cc0abc38b74f121ecad64f00d", }, }, .paths = .{ diff --git a/src/renderer/vaxis/renderer.zig b/src/renderer/vaxis/renderer.zig index 53964bc..7219311 100644 --- a/src/renderer/vaxis/renderer.zig +++ b/src/renderer/vaxis/renderer.zig @@ -322,6 +322,17 @@ pub fn set_terminal_title(self: *Self, text: []const u8) void { self.vx.setTitle(self.tty.anyWriter(), text) catch {}; } +pub fn set_terminal_style(self: *Self, style_: Style) void { + if (style_.fg) |color| + self.vx.setTerminalForegroundColor(self.tty.anyWriter(), vaxis.Cell.Color.rgbFromUint(@intCast(color)).rgb) catch {}; + if (style_.bg) |color| + self.vx.setTerminalBackgroundColor(self.tty.anyWriter(), vaxis.Cell.Color.rgbFromUint(@intCast(color)).rgb) catch {}; + const bg = vaxis.Cell.Color.rgbFromUint(@intCast(style_.bg.?)).rgb; + self.logger.print(vaxis.ctlseqs.osc11_set, .{ bg[0], bg[0], bg[1], bg[1], bg[2], bg[2] }); + self.logger.print("bg: {any}", .{style_.bg.?}); + self.vx.state.changed_default_bg = false; +} + pub fn copy_to_system_clipboard(self: *Self, text: []const u8) void { var bufferedWriter = self.tty.bufferedWriter(); self.vx.copyToSystemClipboard(bufferedWriter.writer().any(), text, self.a) catch |e| log.logger(log_name).err("copy_to_system_clipboard", e); diff --git a/src/tui/tui.zig b/src/tui/tui.zig index fe776bd..c3770e6 100644 --- a/src/tui/tui.zig +++ b/src/tui/tui.zig @@ -134,6 +134,7 @@ fn init(a: Allocator) !*Self { } self.mainview = try mainview.create(a, n); self.resize(); + self.rdr.set_terminal_style(self.theme.editor); try self.rdr.render(); try self.save_config(); if (tp.env.get().is("restore-session")) { @@ -523,6 +524,7 @@ const cmds = struct { pub fn theme_next(self: *Self, _: Ctx) Result { self.theme = get_next_theme_by_name(self.theme.name); self.config.theme = self.theme.name; + self.rdr.set_terminal_style(self.theme.editor); self.logger.print("theme: {s}", .{self.theme.description}); try self.save_config(); } @@ -530,6 +532,7 @@ const cmds = struct { pub fn theme_prev(self: *Self, _: Ctx) Result { self.theme = get_prev_theme_by_name(self.theme.name); self.config.theme = self.theme.name; + self.rdr.set_terminal_style(self.theme.editor); self.logger.print("theme: {s}", .{self.theme.description}); try self.save_config(); }