From 1f5040696798cde4c10537e3c2733eeb9e1e039c Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Fri, 22 Dec 2023 17:03:20 -0800 Subject: [PATCH] apprt/gtk: correct icon path now that our resources dir is in a subdir From #1132, our resources dir is now someting like `/usr/share/ghostty`, but GTK icons always go into `/usr/share/icons`. This does a basename on the resources dir to set the correct directory. --- src/apprt/gtk/icon.zig | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/apprt/gtk/icon.zig b/src/apprt/gtk/icon.zig index 2c446c620..6a7ced3ea 100644 --- a/src/apprt/gtk/icon.zig +++ b/src/apprt/gtk/icon.zig @@ -29,12 +29,22 @@ pub fn appIcon(app: *App, widget: *c.GtkWidget) !Icon { // to the search path and see if we can find it there. const icon_theme = c.gtk_icon_theme_get_for_display(c.gtk_widget_get_display(widget)); if (c.gtk_icon_theme_has_icon(icon_theme, icon_name) == 0) icon: { - const base = global_state.resources_dir orelse { + const resources_dir = global_state.resources_dir orelse { log.info("gtk app missing Ghostty icon and no resources dir detected", .{}); log.info("gtk app will not have Ghostty icon", .{}); break :icon; }; + // The resources dir usually is `/usr/share/ghostty` but GTK icons + // go into `/usr/share/icons`. + const base = std.fs.path.dirname(resources_dir) orelse { + log.warn( + "unexpected error getting dirname of resources dir dir={s}", + .{resources_dir}, + ); + break :icon; + }; + // Note that this method for adding the icon search path is // a fallback mechanism. The recommended mechanism is the // Freedesktop Icon Theme Specification. We distribute a ".desktop"