feat: set terminal background to match editor

This commit is contained in:
CJ van den Berg 2024-08-12 23:24:10 +02:00
parent 953fc8535c
commit 7f0f8c9ed3
3 changed files with 16 additions and 2 deletions

View file

@ -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);

View file

@ -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();
}