mirror of
https://github.com/ghostty-org/ghostty.git
synced 2025-07-16 08:46:08 +03:00
try to abstract bundle ID to a zig file
This commit is contained in:
@ -14,6 +14,7 @@ const std = @import("std");
|
||||
const assert = std.debug.assert;
|
||||
const Allocator = std.mem.Allocator;
|
||||
const builtin = @import("builtin");
|
||||
const build_config = @import("../../build_config.zig");
|
||||
const apprt = @import("../../apprt.zig");
|
||||
const configpkg = @import("../../config.zig");
|
||||
const input = @import("../../input.zig");
|
||||
@ -181,7 +182,7 @@ pub fn init(core_app: *CoreApp, opts: Options) !App {
|
||||
}
|
||||
}
|
||||
|
||||
const default_id = "com.mitchellh.ghostty";
|
||||
const default_id = comptime build_config.bundle_id;
|
||||
break :app_id if (builtin.mode == .Debug) default_id ++ "-debug" else default_id;
|
||||
};
|
||||
|
||||
|
@ -3,6 +3,7 @@ const ConfigErrors = @This();
|
||||
|
||||
const std = @import("std");
|
||||
const Allocator = std.mem.Allocator;
|
||||
const build_config = @import("../../build_config.zig");
|
||||
const configpkg = @import("../../config.zig");
|
||||
const Config = configpkg.Config;
|
||||
|
||||
@ -53,7 +54,7 @@ fn init(self: *ConfigErrors, app: *App) !void {
|
||||
c.gtk_window_set_title(gtk_window, "Configuration Errors");
|
||||
c.gtk_window_set_default_size(gtk_window, 600, 275);
|
||||
c.gtk_window_set_resizable(gtk_window, 0);
|
||||
c.gtk_window_set_icon_name(gtk_window, "com.mitchellh.ghostty");
|
||||
c.gtk_window_set_icon_name(gtk_window, build_config.bundle_id);
|
||||
_ = c.g_signal_connect_data(window, "destroy", c.G_CALLBACK(>kDestroy), self, null, c.G_CONNECT_DEFAULT);
|
||||
|
||||
// Set some state
|
||||
|
@ -5,6 +5,7 @@ const Surface = @This();
|
||||
|
||||
const std = @import("std");
|
||||
const Allocator = std.mem.Allocator;
|
||||
const build_config = @import("../../build_config.zig");
|
||||
const configpkg = @import("../../config.zig");
|
||||
const apprt = @import("../../apprt.zig");
|
||||
const font = @import("../../font/main.zig");
|
||||
@ -1149,7 +1150,7 @@ pub fn showDesktopNotification(
|
||||
defer c.g_object_unref(notification);
|
||||
c.g_notification_set_body(notification, body.ptr);
|
||||
|
||||
const icon = c.g_themed_icon_new("com.mitchellh.ghostty");
|
||||
const icon = c.g_themed_icon_new(build_config.bundle_id);
|
||||
defer c.g_object_unref(icon);
|
||||
c.g_notification_set_icon(notification, icon);
|
||||
|
||||
|
@ -103,7 +103,7 @@ pub fn init(self: *Window, app: *App) !void {
|
||||
// to disable this so that terminal programs can capture F10 (such as htop)
|
||||
c.gtk_window_set_handle_menubar_accel(gtk_window, 0);
|
||||
|
||||
c.gtk_window_set_icon_name(gtk_window, "com.mitchellh.ghostty");
|
||||
c.gtk_window_set_icon_name(gtk_window, build_config.bundle_id);
|
||||
|
||||
// Apply class to color headerbar if window-theme is set to `ghostty` and
|
||||
// GTK version is before 4.16. The conditional is because above 4.16
|
||||
|
@ -2,6 +2,7 @@ const std = @import("std");
|
||||
const Allocator = std.mem.Allocator;
|
||||
const assert = std.debug.assert;
|
||||
|
||||
const build_config = @import("../../build_config.zig");
|
||||
const App = @import("App.zig");
|
||||
const Surface = @import("Surface.zig");
|
||||
const TerminalWindow = @import("Window.zig");
|
||||
@ -141,7 +142,7 @@ const Window = struct {
|
||||
self.window = gtk_window;
|
||||
c.gtk_window_set_title(gtk_window, "Ghostty: Terminal Inspector");
|
||||
c.gtk_window_set_default_size(gtk_window, 1000, 600);
|
||||
c.gtk_window_set_icon_name(gtk_window, "com.mitchellh.ghostty");
|
||||
c.gtk_window_set_icon_name(gtk_window, build_config.bundle_id);
|
||||
|
||||
// Initialize our imgui widget
|
||||
try self.imgui_widget.init();
|
||||
|
@ -103,6 +103,20 @@ pub const app_runtime: apprt.Runtime = config.app_runtime;
|
||||
pub const font_backend: font.Backend = config.font_backend;
|
||||
pub const renderer: rendererpkg.Impl = config.renderer;
|
||||
|
||||
/// The bundle ID for the app. This is used in many places and is currently
|
||||
/// hardcoded here. We could make this configurable in the future if there
|
||||
/// is a reason to do so.
|
||||
///
|
||||
/// On macOS, this must match the App bundle ID. We can get that dynamically
|
||||
/// via an API but I don't want to pay the cost of that at runtime.
|
||||
///
|
||||
/// On GTK, this should match the various folders with resources.
|
||||
///
|
||||
/// There are many places that don't use this variable so simply swapping
|
||||
/// this variable is NOT ENOUGH to change the bundle ID. I just wanted to
|
||||
/// avoid it in Zig coe as much as possible.
|
||||
pub const bundle_id = "com.mitchellh.ghostty";
|
||||
|
||||
/// True if we should have "slow" runtime safety checks. The initial motivation
|
||||
/// for this was terminal page/pagelist integrity checks. These were VERY
|
||||
/// slow but very thorough. But they made it so slow that the terminal couldn't
|
||||
|
@ -141,7 +141,7 @@ fn logFn(
|
||||
|
||||
// Initialize a logger. This is slow to do on every operation
|
||||
// but we shouldn't be logging too much.
|
||||
const logger = macos.os.Log.create("com.mitchellh.ghostty", @tagName(scope));
|
||||
const logger = macos.os.Log.create(build_config.bundle_id, @tagName(scope));
|
||||
defer logger.release();
|
||||
logger.log(std.heap.c_allocator, mac_level, format, args);
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
const std = @import("std");
|
||||
const builtin = @import("builtin");
|
||||
const build_config = @import("../build_config.zig");
|
||||
const assert = std.debug.assert;
|
||||
const objc = @import("objc");
|
||||
const Allocator = std.mem.Allocator;
|
||||
@ -56,7 +57,7 @@ pub fn appSupportDir(
|
||||
|
||||
return try std.fs.path.join(alloc, &.{
|
||||
app_support_dir,
|
||||
"com.mitchellh.ghostty",
|
||||
build_config.bundle_id,
|
||||
sub_path,
|
||||
});
|
||||
}
|
||||
|
Reference in New Issue
Block a user