From b41f45d7a353f29172cb8af0f87a80890d088d79 Mon Sep 17 00:00:00 2001 From: Paul Date: Tue, 24 Sep 2024 08:10:06 +0200 Subject: [PATCH] apprt/gtk: support window-theme != ghostty - support for gtk-tabs-location=bottom - support for gtk-titlebar=false --- src/apprt/gtk/App.zig | 4 +++- src/apprt/gtk/Window.zig | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/apprt/gtk/App.zig b/src/apprt/gtk/App.zig index 1224036f0..73c25ec87 100644 --- a/src/apprt/gtk/App.zig +++ b/src/apprt/gtk/App.zig @@ -443,7 +443,9 @@ fn loadRuntimeCss(config: *const Config, provider: *c.GtkCssProvider) !void { \\ opacity: {d:.2}; \\ background-color: rgb({d},{d},{d}); \\}} - \\.top-bar {{ + \\window.window-theme-ghostty .top-bar, + \\window.window-theme-ghostty .bottom-bar, + \\window.window-theme-ghostty box > tabbar {{ \\ background-color: rgb({d},{d},{d}); \\ color: rgb({d},{d},{d}); \\}} diff --git a/src/apprt/gtk/Window.zig b/src/apprt/gtk/Window.zig index a40b9c89d..efb0d2ea4 100644 --- a/src/apprt/gtk/Window.zig +++ b/src/apprt/gtk/Window.zig @@ -95,6 +95,11 @@ pub fn init(self: *Window, app: *App) !void { c.gtk_window_set_icon_name(gtk_window, "com.mitchellh.ghostty"); + // Apply class to color headerbar if window-theme is set to `ghostty`. + if (app.config.@"window-theme" == .ghostty) { + c.gtk_widget_add_css_class(@ptrCast(gtk_window), "window-theme-ghostty"); + } + // Remove the window's background if any of the widgets need to be transparent if (app.config.@"background-opacity" < 1) { c.gtk_widget_remove_css_class(@ptrCast(window), "background");