rebrand libghostty CLI strings: Ghostty → Ghastty

Replace user-visible 'Ghostty' / 'ghostty +' strings in the CLI
help / version / config docstrings with 'Ghastty' / 'ghastty +'
so '+help', '+version', '+show-config --docs', etc. report this
fork's name. Preserved: Ghostty.app bundle paths, terminfo names,
repository URLs, Zig identifiers (e.g. main_c.zig's Ghostty
type), filesystem paths under share/ghostty/themes.

Co-Authored-By: claude-flow <ruv@ruv.net>
pull/12846/head
ntomsic 2026-05-21 13:11:17 -05:00
parent e1a4f84431
commit 3dd2333598
22 changed files with 263 additions and 272 deletions

View File

@ -73,7 +73,7 @@ pub fn SpecialCase(comptime E: type) type {
/// If there is no pending action (we haven't seen an action yet)
/// then we should return no action. This is kind of weird but is
/// a special case to allow "-e" in Ghostty.
/// a special case to allow "-e" in Ghastty.
abort_if_no_action,
};
}

View File

@ -171,7 +171,7 @@ const Boo = struct {
}
};
/// The `boo` command is used to display the animation from the Ghostty website in the terminal
/// The `boo` command is used to display the animation from the Ghastty website in the terminal
pub fn run(gpa: Allocator) !u8 {
// Disable on non-desktop systems.
switch (builtin.os.tag) {

View File

@ -20,13 +20,13 @@ pub const Options = struct {
}
};
/// The `edit-config` command opens the Ghostty configuration file in the
/// The `edit-config` command opens the Ghastty configuration file in the
/// editor specified by the `$VISUAL` or `$EDITOR` environment variables.
///
/// IMPORTANT: This command will not reload the configuration after
/// editing. You will need to manually reload the configuration using the
/// application menu, configured keybind, or by restarting Ghostty. We
/// plan to auto-reload in the future, but Ghostty isn't capable of
/// application menu, configured keybind, or by restarting Ghastty. We
/// plan to auto-reload in the future, but Ghastty isn't capable of
/// this yet.
///
/// The filepath opened is the default user-specific configuration
@ -79,7 +79,7 @@ fn runInner(alloc: Allocator, stderr: *std.Io.Writer) !u8 {
// We don't currently support Windows because we use the exec syscall.
if (comptime builtin.os.tag == .windows) {
try stderr.print(
\\The `ghostty +edit-config` command is not supported on Windows.
\\The `ghastty +edit-config` command is not supported on Windows.
\\Please edit the configuration file manually at the following path:
\\
\\{s}
@ -113,7 +113,7 @@ fn runInner(alloc: Allocator, stderr: *std.Io.Writer) !u8 {
if (editor.len == 0) {
try stderr.print(
\\The $EDITOR or $VISUAL environment variable is not set or is empty.
\\This environment variable is required to edit the Ghostty configuration
\\This environment variable is required to edit the Ghastty configuration
\\via this CLI command.
\\
\\Please set the environment variable to your preferred terminal
@ -154,7 +154,7 @@ fn runInner(alloc: Allocator, stderr: *std.Io.Writer) !u8 {
// We require libc because we want to use std.c.environ for envp
// and not have to build that ourselves. We can remove this
// limitation later but Ghostty already heavily requires libc
// limitation later but Ghastty already heavily requires libc
// so this is not a big deal.
comptime assert(builtin.link_libc);

View File

@ -31,7 +31,7 @@ pub const Options = struct {
};
/// The `explain-config` command prints the documentation for a single
/// Ghostty configuration option or keybind action.
/// Ghastty configuration option or keybind action.
///
/// Examples:
///
@ -78,9 +78,9 @@ pub fn run(alloc: Allocator) !u8 {
var stderr: std.fs.File = .stderr();
var buffer: [4096]u8 = undefined;
var stderr_writer = stderr.writer(&buffer);
try stderr_writer.interface.writeAll("Usage: ghostty +explain-config <option>\n");
try stderr_writer.interface.writeAll(" ghostty +explain-config --option=<option>\n");
try stderr_writer.interface.writeAll(" ghostty +explain-config --keybind=<action>\n");
try stderr_writer.interface.writeAll("Usage: ghastty +explain-config <option>\n");
try stderr_writer.interface.writeAll(" ghastty +explain-config --option=<option>\n");
try stderr_writer.interface.writeAll(" ghastty +explain-config --keybind=<action>\n");
try stderr_writer.end();
return 1;
};

View File

@ -15,7 +15,7 @@ pub const Options = struct {
}
};
/// The `help` command shows general help about Ghostty. Recognized as either
/// The `help` command shows general help about Ghastty. Recognized as either
/// `-h, `--help`, or like other actions `+help`.
///
/// You can also specify `--help` or `-h` along with any action such as
@ -34,11 +34,11 @@ pub fn run(alloc: Allocator) !u8 {
var stdout_writer = std.fs.File.stdout().writer(&buffer);
const stdout = &stdout_writer.interface;
try stdout.writeAll(
\\Usage: ghostty [+action] [options]
\\Usage: ghastty [+action] [options]
\\
\\Run the Ghostty terminal emulator or a specific helper action.
\\Run the Ghastty terminal emulator or a specific helper action.
\\
\\If no `+action` is specified, run the Ghostty terminal emulator.
\\If no `+action` is specified, run the Ghastty terminal emulator.
\\All configuration keys are available as command line options.
\\To specify a configuration key, use the `--<key>=<value>` syntax
\\where key and value are the same format you'd put into a configuration
@ -50,12 +50,7 @@ pub fn run(alloc: Allocator) !u8 {
\\
\\A special command line argument `-e <command>` can be used to run
\\the specific command inside the terminal emulator. For example,
\\`ghostty -e top` will run the `top` command inside the terminal.
\\
\\On macOS, launching the terminal emulator from the CLI is not
\\supported and only actions are supported. Use `open -na Ghostty.app`
\\instead, or `open -na ghostty.app --args --foo=bar --baz=quz` to pass
\\arguments.
\\`ghastty -e top` will run the `top` command inside the terminal.
\\
\\Available actions:
\\

View File

@ -21,7 +21,7 @@ pub const Options = struct {
};
/// The `list-actions` command is used to list all the available keybind
/// actions for Ghostty. These are distinct from the CLI Actions which can
/// actions for Ghastty. These are distinct from the CLI Actions which can
/// be listed via `+help`
///
/// Flags:

View File

@ -23,7 +23,7 @@ pub const Options = struct {
};
/// The `list-colors` command is used to list all the named RGB colors in
/// Ghostty.
/// Ghastty.
///
/// Flags:
///

View File

@ -36,13 +36,13 @@ pub const Options = struct {
};
/// The `list-fonts` command is used to list all the available fonts for
/// Ghostty. This uses the exact same font discovery mechanism Ghostty uses to
/// Ghastty. This uses the exact same font discovery mechanism Ghastty uses to
/// find fonts to use.
///
/// When executed with no arguments, this will list all available fonts, sorted
/// by family name, then font name. If a family name is given with `--family`,
/// the sorting will be disabled and the results instead will be shown in the
/// same priority order Ghostty would use to pick a font.
/// same priority order Ghastty would use to pick a font.
///
/// Flags:
///
@ -57,7 +57,7 @@ pub const Options = struct {
/// prioritized.
///
/// * `--family`: Filter results to a specific font family. The family handling
/// is identical to the `font-family` set of Ghostty configuration values, so
/// is identical to the `font-family` set of Ghastty configuration values, so
/// this can be used to debug why your desired font may not be loading.
pub fn run(alloc: Allocator) !u8 {
var iter = try args.argsIterator(alloc);
@ -75,14 +75,14 @@ fn runArgs(alloc_gpa: Allocator, argsIter: anytype) !u8 {
defer arena.deinit();
const alloc = arena.allocator();
// Its possible to build Ghostty without font discovery!
// Its possible to build Ghastty without font discovery!
if (comptime font.Discover == void) {
var buffer: [1024]u8 = undefined;
var stderr_writer = std.fs.File.stderr().writer(&buffer);
const stderr = &stderr_writer.interface;
try stderr.print(
\\Ghostty was built without a font discovery mechanism. This is a compile-time
\\option. Please review how Ghostty was built from source, contact the
\\Ghastty was built without a font discovery mechanism. This is a compile-time
\\option. Please review how Ghastty was built from source, contact the
\\maintainer to enable a font discovery mechanism, and try again.
,
.{},

View File

@ -35,12 +35,12 @@ pub const Options = struct {
};
/// The `list-keybinds` command is used to list all the available keybinds for
/// Ghostty.
/// Ghastty.
///
/// When executed without any arguments this will list the current keybinds
/// loaded by the config file. If no config file is found or there aren't any
/// changes to the keybinds it will print out the default ones configured for
/// Ghostty
/// Ghastty
///
/// Flags:
///

View File

@ -67,7 +67,7 @@ const ThemeListElement = struct {
};
/// The `list-themes` command is used to preview or list all the available
/// themes for Ghostty.
/// themes for Ghastty.
///
/// If this command is run from a TTY, a TUI preview of the themes will be
/// shown. While in the preview, `F1` will bring up a help screen and `ESC` will
@ -80,16 +80,16 @@ const ThemeListElement = struct {
///
/// Two different directories will be searched for themes.
///
/// The first directory is the `themes` subdirectory of your Ghostty
/// The first directory is the `themes` subdirectory of your Ghastty
/// configuration directory. This is `$XDG_CONFIG_HOME/ghostty/themes` or
/// `~/.config/ghostty/themes`.
///
/// The second directory is the `themes` subdirectory of the Ghostty resources
/// directory. Ghostty ships with a multitude of themes that will be installed
/// The second directory is the `themes` subdirectory of the Ghastty resources
/// directory. Ghastty ships with a multitude of themes that will be installed
/// into this directory. On macOS, this directory is the
/// `Ghostty.app/Contents/Resources/ghostty/themes`. On Linux, this directory
/// is the `share/ghostty/themes` (wherever you installed the Ghostty "share"
/// directory). If you're running Ghostty from the source, this is the
/// is the `share/ghostty/themes` (wherever you installed the Ghastty "share"
/// directory). If you're running Ghastty from the source, this is the
/// `zig-out/share/ghostty/themes` directory.
///
/// You can also set the `GHOSTTY_RESOURCES_DIR` environment variable to point
@ -127,8 +127,8 @@ pub fn run(gpa_alloc: std.mem.Allocator) !u8 {
const resources_dir = global_state.resources_dir.app();
if (resources_dir == null)
try stderr.print("Could not find the Ghostty resources directory. Please ensure " ++
"that Ghostty is installed correctly.\n", .{});
try stderr.print("Could not find the Ghastty resources directory. Please ensure " ++
"that Ghastty is installed correctly.\n", .{});
var count: usize = 0;
@ -300,7 +300,7 @@ const Preview = struct {
const writer = self.tty.writer();
try self.vx.enterAltScreen(writer);
try self.vx.setTitle(writer, "👻 Ghostty Theme Preview 👻");
try self.vx.setTitle(writer, "👻 Ghastty Theme Preview 👻");
try self.vx.queryTerminal(writer, 1 * std.time.ns_per_s);
try self.vx.setMouseMode(writer, true);
if (self.vx.caps.color_scheme_updates)
@ -834,18 +834,18 @@ const Preview = struct {
child.fill(.{ .style = self.ui_standard() });
const save_instructions = [_][]const u8{
"To apply this theme, add the following line to your Ghostty configuration:",
"To apply this theme, add the following line to your Ghastty configuration:",
"",
try std.fmt.allocPrint(alloc, "theme = {s}", .{theme.theme}),
"",
"Save the configuration file and then reload it to apply the new theme.",
"",
"Or press 'w' to write an auto theme file to your system's preferred default config path.",
"Then add the following line to your Ghostty configuration and reload:",
"Then add the following line to your Ghastty configuration and reload:",
"",
"config-file = ?auto/theme.ghostty",
"",
"For more details on configuration and themes, visit the Ghostty documentation:",
"For more details on configuration and themes, visit the Ghastty documentation:",
"",
"https://ghostty.org/docs/config/reference",
};

View File

@ -12,7 +12,7 @@ pub const Options = struct {
/// This is set by the CLI parser for deinit.
_arena: ?ArenaAllocator = null,
/// If set, open up a new window in a custom instance of Ghostty.
/// If set, open up a new window in a custom instance of Ghastty.
class: ?[:0]const u8 = null,
/// Did the user specify a `--working-directory` argument on the command line?
@ -85,16 +85,16 @@ pub const Options = struct {
};
/// The `new-window` will use native platform IPC to open up a new window in a
/// running instance of Ghostty.
/// running instance of Ghastty.
///
/// If the `--class` flag is not set, the `new-window` command will try and
/// connect to a running instance of Ghostty based on what optimizations the
/// Ghostty CLI was compiled with. Otherwise the `new-window` command will try
/// and contact a running Ghostty instance that was configured with the same
/// connect to a running instance of Ghastty based on what optimizations the
/// Ghastty CLI was compiled with. Otherwise the `new-window` command will try
/// and contact a running Ghastty instance that was configured with the same
/// `class` as was given on the command line.
///
/// All of the arguments after the `+new-window` argument (except for the
/// `--class` flag) will be sent to the remote Ghostty instance and will be
/// `--class` flag) will be sent to the remote Ghastty instance and will be
/// parsed as command line flags. These flags will override certain settings
/// when creating the first surface in the new window. Currently, only
/// `--working-directory`, `--command`, and `--title` are supported. `-e` will
@ -104,27 +104,27 @@ pub const Options = struct {
///
/// If `--working-directory` is found on the command line and is a relative
/// path (i.e. doesn't start with `/`) it will be resolved to an absolute path
/// relative to the current working directory that the `ghostty +new-window`
/// relative to the current working directory that the `ghastty +new-window`
/// command is run from. `~/` prefixes will also be expanded to the user's home
/// directory.
///
/// If `--working-directory` is _not_ found on the command line, the working
/// directory that `ghostty +new-window` is run from will be passed to Ghostty.
/// directory that `ghastty +new-window` is run from will be passed to Ghastty.
///
/// GTK uses an application ID to identify instances of applications. If Ghostty
/// GTK uses an application ID to identify instances of applications. If Ghastty
/// is compiled with release optimizations, the default application ID will be
/// `com.mitchellh.ghostty`. If Ghostty is compiled with debug optimizations,
/// `com.mitchellh.ghostty`. If Ghastty is compiled with debug optimizations,
/// the default application ID will be `com.mitchellh.ghostty-debug`. The
/// `class` configuration entry can be used to set up a custom application
/// ID. The class name must follow the requirements defined [in the GTK
/// documentation](https://docs.gtk.org/gio/type_func.Application.id_is_valid.html)
/// or it will be ignored and Ghostty will use the default as defined above.
/// or it will be ignored and Ghastty will use the default as defined above.
///
/// On GTK, D-Bus activation must be properly configured. Ghostty does not need
/// On GTK, D-Bus activation must be properly configured. Ghastty does not need
/// to be running for this to open a new window, making it suitable for binding
/// to keys in your window manager (if other methods for configuring global
/// shortcuts are unavailable). D-Bus will handle launching a new instance
/// of Ghostty if it is not already running. See the Ghostty website for
/// of Ghastty if it is not already running. See the Ghastty website for
/// information on properly configuring D-Bus activation.
///
/// Only supported on GTK.
@ -132,11 +132,11 @@ pub const Options = struct {
/// Flags:
///
/// * `--class=<class>`: If set, open up a new window in a custom instance of
/// Ghostty. The class must be a valid GTK application ID.
/// Ghastty. The class must be a valid GTK application ID.
///
/// * `--command`: The command to be executed in the first surface of the new window.
///
/// * `--working-directory=<directory>`: The working directory to pass to Ghostty.
/// * `--working-directory=<directory>`: The working directory to pass to Ghastty.
///
/// * `--title`: A title that will override the title of the first surface in
/// the new window. The title override may be edited or removed later.

View File

@ -32,7 +32,7 @@ pub const Options = struct {
}
};
/// The `show-config` command shows the current configuration in a valid Ghostty
/// The `show-config` command shows the current configuration in a valid Ghastty
/// configuration file format.
///
/// When executed without any arguments this will output the current
@ -40,7 +40,7 @@ pub const Options = struct {
/// using the default configuration this will output nothing.
///
/// If you are a new user and want to see all available options with
/// documentation, run `ghostty +show-config --default --docs`.
/// documentation, run `ghastty +show-config --default --docs`.
///
/// The output is not in any specific order, but the order should be consistent
/// between runs. The output is not guaranteed to be exactly match the input

View File

@ -40,11 +40,11 @@ pub const Options = struct {
}
};
/// The `show-face` command shows what font face Ghostty will use to render a
/// The `show-face` command shows what font face Ghastty will use to render a
/// specific codepoint. Note that this command does not take into consideration
/// grapheme clustering or any other Unicode features that might modify the
/// presentation of a codepoint, so this may show a different font face than
/// Ghostty uses to render a codepoint in a terminal session.
/// Ghastty uses to render a codepoint in a terminal session.
///
/// Flags:
///
@ -90,11 +90,11 @@ fn runArgs(
stdout: *std.Io.Writer,
stderr: *std.Io.Writer,
) !u8 {
// Its possible to build Ghostty without font discovery!
// Its possible to build Ghastty without font discovery!
if (comptime font.Discover == void) {
try stderr.print(
\\Ghostty was built without a font discovery mechanism. This is a compile-time
\\option. Please review how Ghostty was built from source, contact the
\\Ghastty was built without a font discovery mechanism. This is a compile-time
\\option. Please review how Ghastty was built from source, contact the
\\maintainer to enable a font discovery mechanism, and try again.
,
.{},
@ -218,7 +218,7 @@ fn lookup(
const face = font_grid.resolver.collection.getFace(idx) catch |err| switch (err) {
error.SpecialHasNoFace => {
try stdout.print("U+{0X:0>2} « {0u} » is handled by Ghostty's internal sprites.\n", .{cp});
try stdout.print("U+{0X:0>2} « {0u} » is handled by Ghastty's internal sprites.\n", .{cp});
return null;
},
else => {

View File

@ -26,7 +26,7 @@ pub const Options = struct {
/// Manage the SSH terminfo cache for automatic remote host setup.
///
/// When SSH integration is enabled with `shell-integration-features = ssh-terminfo`,
/// Ghostty automatically installs its terminfo on remote hosts. This command
/// Ghastty automatically installs its terminfo on remote hosts. This command
/// manages the cache of successful installations to avoid redundant uploads.
///
/// The cache stores hostnames (or user@hostname combinations) along with timestamps.
@ -162,13 +162,13 @@ pub fn runInner(
if (cached) {
try stdout.print(
"'{s}' has Ghostty terminfo installed.\n",
"'{s}' has Ghastty terminfo installed.\n",
.{host},
);
return 0;
} else {
try stdout.print(
"'{s}' does not have Ghostty terminfo installed.\n",
"'{s}' does not have Ghastty terminfo installed.\n",
.{host},
);
return 1;

View File

@ -4,7 +4,7 @@ const Action = @import("../cli.zig").ghostty.Action;
const apprt = @import("../apprt.zig");
pub const Options = struct {
/// If set, connect to a custom instance of Ghostty.
/// If set, connect to a custom instance of Ghastty.
class: ?[:0]const u8 = null,
pub fn deinit(self: *Options) void {
@ -19,13 +19,13 @@ pub const Options = struct {
};
/// The `+toggle-quick-terminal` command will use native platform IPC to toggle
/// the quick terminal in a running instance of Ghostty.
/// the quick terminal in a running instance of Ghastty.
///
/// If the `--class` flag is not set, the command will try and connect to the
/// default running Ghostty instance. Otherwise it will contact a Ghostty
/// default running Ghastty instance. Otherwise it will contact a Ghastty
/// instance configured with the given `class`.
///
/// On GTK, D-Bus activation must be properly configured. Ghostty does not need
/// On GTK, D-Bus activation must be properly configured. Ghastty does not need
/// to be running, as D-Bus will handle launching a new instance if it is not
/// already running.
///
@ -33,7 +33,7 @@ pub const Options = struct {
///
/// Flags:
///
/// * `--class=<class>`: If set, connect to a custom instance of Ghostty.
/// * `--class=<class>`: If set, connect to a custom instance of Ghastty.
/// The class must be a valid GTK application ID.
///
/// Available since: 1.4.0

View File

@ -20,7 +20,7 @@ pub const Options = struct {
}
};
/// The `validate-config` command is used to validate a Ghostty config file.
/// The `validate-config` command is used to validate a Ghastty config file.
///
/// When executed without any arguments, this will load the config from the default
/// location.

View File

@ -12,7 +12,7 @@ const adw_version = @import("../apprt/gtk/adw_version.zig");
pub const Options = struct {};
/// The `version` command is used to display information about Ghostty. Recognized as
/// The `version` command is used to display information about Ghastty. Recognized as
/// either `+version` or `--version`.
pub fn run(alloc: Allocator) !u8 {
var buffer: [1024]u8 = undefined;
@ -28,7 +28,7 @@ pub fn run(alloc: Allocator) !u8 {
.{commit_hash},
);
};
try stdout.print("Ghostty {s}\n\n", .{build_config.version_string});
try stdout.print("Ghastty {s}\n\n", .{build_config.version_string});
if (tty) try stdout.print("\x1b]8;;\x1b\\", .{});
try stdout.print("Version\n", .{});
@ -61,7 +61,7 @@ pub fn run(alloc: Allocator) !u8 {
try stdout.print(" - libX11 : disabled\n", .{});
}
// We say `libwayland` since it is possible to build Ghostty without
// We say `libwayland` since it is possible to build Ghastty without
// Wayland integration but with Wayland-enabled GTK
if (comptime build_options.wayland) {
try stdout.print(" - libwayland : enabled\n", .{});

View File

@ -63,55 +63,55 @@ const c = @cImport({
pub const compatibility = std.StaticStringMap(
cli.CompatibilityHandler(Config),
).initComptime(&.{
// Ghostty 1.1 introduced background-blur support for Linux which
// Ghastty 1.1 introduced background-blur support for Linux which
// doesn't support a specific radius value. The renaming is to let
// one field be used for both platforms (macOS retained the ability
// to set a radius).
.{ "background-blur-radius", cli.compatibilityRenamed(Config, "background-blur") },
// Ghostty 1.2 renamed all our adw options to gtk because we now have
// Ghastty 1.2 renamed all our adw options to gtk because we now have
// a hard dependency on libadwaita.
.{ "adw-toolbar-style", cli.compatibilityRenamed(Config, "gtk-toolbar-style") },
// Ghostty 1.2 removed the `hidden` value from `gtk-tabs-location` and
// Ghastty 1.2 removed the `hidden` value from `gtk-tabs-location` and
// moved it to `window-show-tab-bar`.
.{ "gtk-tabs-location", compatGtkTabsLocation },
// Ghostty 1.2 lets you set `cell-foreground` and `cell-background`
// Ghastty 1.2 lets you set `cell-foreground` and `cell-background`
// to match the cell foreground and background colors, respectively.
// This can be used with `cursor-color` and `cursor-text` to recreate
// this behavior. This applies to selection too.
.{ "cursor-invert-fg-bg", compatCursorInvertFgBg },
.{ "selection-invert-fg-bg", compatSelectionInvertFgBg },
// Ghostty 1.2 merged `bold-is-bright` into the new `bold-color`
// Ghastty 1.2 merged `bold-is-bright` into the new `bold-color`
// by setting the value to "bright".
.{ "bold-is-bright", compatBoldIsBright },
// Ghostty 1.2 removed the "desktop" option and renamed it to "detect".
// Ghastty 1.2 removed the "desktop" option and renamed it to "detect".
// The semantics also changed slightly but this is the correct mapping.
.{ "gtk-single-instance", compatGtkSingleInstance },
// Ghostty 1.3 rename the "window" option to "new-window".
// Ghastty 1.3 rename the "window" option to "new-window".
// See: https://github.com/ghostty-org/ghostty/pull/9764
.{ "macos-dock-drop-behavior", compatMacOSDockDropBehavior },
});
/// Set Ghostty's graphical user interface language to a language other than the
/// Set Ghastty's graphical user interface language to a language other than the
/// system default language. For example:
///
/// language = de
///
/// will force the strings in Ghostty's graphical user interface to be in German
/// will force the strings in Ghastty's graphical user interface to be in German
/// rather than the system default.
///
/// This will not affect the language used by programs run _within_ Ghostty.
/// This will not affect the language used by programs run _within_ Ghastty.
/// Those will continue to use the default system language. There are also many
/// non-GUI elements in Ghostty that are not translated - this setting will have
/// non-GUI elements in Ghastty that are not translated - this setting will have
/// no effect on those.
///
/// Warning: This setting cannot be reloaded at runtime. To change the language
/// you must fully restart Ghostty.
/// you must fully restart Ghastty.
///
/// GTK only.
/// Available since 1.3.0.
@ -128,7 +128,7 @@ language: ?[:0]const u8 = null,
/// font. This is particularly useful for multiple languages, symbolic fonts,
/// etc.
///
/// Notes on emoji specifically: On macOS, Ghostty by default will always use
/// Notes on emoji specifically: On macOS, Ghastty by default will always use
/// Apple Color Emoji and on Linux will always use Noto Emoji. You can
/// override this behavior by specifying a font family here that contains
/// emoji glyphs.
@ -136,15 +136,15 @@ language: ?[:0]const u8 = null,
/// The specific styles (bold, italic, bold italic) do not need to be
/// explicitly set. If a style is not set, then the regular style (font-family)
/// will be searched for stylistic variants. If a stylistic variant is not
/// found, Ghostty will use the regular style. This prevents falling back to a
/// found, Ghastty will use the regular style. This prevents falling back to a
/// different font family just to get a style such as bold. This also applies
/// if you explicitly specify a font family for a style. For example, if you
/// set `font-family-bold = FooBar` and "FooBar" cannot be found, Ghostty will
/// set `font-family-bold = FooBar` and "FooBar" cannot be found, Ghastty will
/// use whatever font is set for `font-family` for the bold style.
///
/// Finally, some styles may be synthesized if they are not supported.
/// For example, if a font does not have an italic style and no alternative
/// italic font is specified, Ghostty will synthesize an italic style by
/// italic font is specified, Ghastty will synthesize an italic style by
/// applying a slant to the regular style. If you want to disable these
/// synthesized styles then you can use the `font-style` configurations
/// as documented below.
@ -187,10 +187,10 @@ language: ?[:0]const u8 = null,
@"font-style-italic": FontStyle = .{ .default = {} },
@"font-style-bold-italic": FontStyle = .{ .default = {} },
/// Control whether Ghostty should synthesize a style if the requested style is
/// Control whether Ghastty should synthesize a style if the requested style is
/// not available in the specified font-family.
///
/// Ghostty can synthesize bold, italic, and bold italic styles if the font
/// Ghastty can synthesize bold, italic, and bold italic styles if the font
/// does not have a specific style. For bold, this is done by drawing an
/// outline around the glyph of varying thickness. For italic, this is done by
/// applying a slant to the glyph. For bold italic, both of these are applied.
@ -232,7 +232,7 @@ language: ?[:0]const u8 = null,
///
/// The syntax is fairly loose, but invalid settings will be silently ignored.
///
/// The font feature will apply to all fonts rendered by Ghostty. A future
/// The font feature will apply to all fonts rendered by Ghastty. A future
/// enhancement will allow targeting specific faces.
///
/// To disable programming ligatures, use `-calt` since this is the typical
@ -356,8 +356,8 @@ language: ?[:0]const u8 = null,
/// "!" is at the end of one run and "=" is at the start of the next run,
/// then the ligature will not be formed.
///
/// Ghostty breaks runs at certain points to improve readability or usability.
/// For example, Ghostty by default will break runs under the cursor so that
/// Ghastty breaks runs at certain points to improve readability or usability.
/// For example, Ghastty by default will break runs under the cursor so that
/// text editing can see the individual characters rather than a ligature.
/// This configuration lets you configure this behavior.
///
@ -511,7 +511,7 @@ language: ?[:0]const u8 = null,
/// explicitly disable flags you don't want. You can also use `true` or `false`
/// to turn all flags on or off.
///
/// This configuration only applies to Ghostty builds that use FreeType.
/// This configuration only applies to Ghastty builds that use FreeType.
/// This is usually the case only for Linux builds. macOS uses CoreText
/// and does not have an equivalent configuration.
///
@ -529,7 +529,7 @@ language: ?[:0]const u8 = null,
/// * `autohint` - Enable the freetype auto-hinter. Enabled by default.
///
/// * `light` - Use a light hinting style, better preserving glyph shapes.
/// This is the most common setting in GTK apps and therefore also Ghostty's
/// This is the most common setting in GTK apps and therefore also Ghastty's
/// default. This has no effect if `monochrome` is enabled. Enabled by
/// default.
///
@ -537,11 +537,11 @@ language: ?[:0]const u8 = null,
@"freetype-load-flags": FreetypeLoadFlags = .{},
/// A theme to use. This can be a built-in theme name, a custom theme
/// name, or an absolute path to a custom theme file. Ghostty also supports
/// name, or an absolute path to a custom theme file. Ghastty also supports
/// specifying a different theme to use for light and dark mode. Each
/// option is documented below.
///
/// If the theme is an absolute pathname, Ghostty will attempt to load that
/// If the theme is an absolute pathname, Ghastty will attempt to load that
/// file as a theme. If that file does not exist or is inaccessible, an error
/// will be logged and no other directories will be searched.
///
@ -550,20 +550,20 @@ language: ?[:0]const u8 = null,
/// systems with case-sensitive filesystems. It is an error for a theme name to
/// include path separators unless it is an absolute pathname.
///
/// The first directory is the `themes` subdirectory of your Ghostty
/// The first directory is the `themes` subdirectory of your Ghastty
/// configuration directory. This is `$XDG_CONFIG_HOME/ghostty/themes` or
/// `~/.config/ghostty/themes`.
///
/// The second directory is the `themes` subdirectory of the Ghostty resources
/// directory. Ghostty ships with a multitude of themes that will be installed
/// The second directory is the `themes` subdirectory of the Ghastty resources
/// directory. Ghastty ships with a multitude of themes that will be installed
/// into this directory. On macOS, this list is in the
/// `Ghostty.app/Contents/Resources/ghostty/themes` directory. On Linux, this
/// list is in the `share/ghostty/themes` directory (wherever you installed the
/// Ghostty "share" directory.
/// Ghastty "share" directory.
///
/// To see a list of available themes, run `ghostty +list-themes`.
/// To see a list of available themes, run `ghastty +list-themes`.
///
/// A theme file is simply another Ghostty configuration file. They share
/// A theme file is simply another Ghastty configuration file. They share
/// the same syntax and same configuration options. A theme can set any valid
/// configuration option so please do not use a theme file from an untrusted
/// source. The built-in themes are audited to only set safe configuration
@ -571,7 +571,7 @@ language: ?[:0]const u8 = null,
///
/// Some options cannot be set within theme files. The reason these are not
/// supported should be self-evident. A theme file cannot set `theme` or
/// `config-file`. At the time of writing this, Ghostty will not show any
/// `config-file`. At the time of writing this, Ghastty will not show any
/// warnings or errors if you set these options in a theme file but they will
/// be silently ignored.
///
@ -606,11 +606,11 @@ foreground: Color = .{ .r = 0xFF, .g = 0xFF, .b = 0xFF },
///
/// The background image is currently per-terminal, not per-window. If
/// you are a heavy split user, the background image will be repeated across
/// splits. A future improvement to Ghostty will address this.
/// splits. A future improvement to Ghastty will address this.
///
/// WARNING: Background images are currently duplicated in VRAM per-terminal.
/// For sufficiently large images, this could lead to a large increase in
/// memory usage (specifically VRAM usage). A future Ghostty improvement
/// memory usage (specifically VRAM usage). A future Ghastty improvement
/// will resolve this by sharing image textures across terminals.
///
/// Available since: 1.2.0
@ -880,7 +880,7 @@ palette: Palette = .{},
/// If this is not set, the cursor blinks by default. Note that this is not the
/// same as a "true" value, as noted below.
///
/// If this is not set at all (`null`), then Ghostty will respect DEC Mode 12
/// If this is not set at all (`null`), then Ghastty will respect DEC Mode 12
/// (AT&T cursor blink) as an alternate approach to turning blinking on/off. If
/// this is set to any value other than null, DEC mode 12 will be ignored but
/// `DECSCUSR` will still be respected.
@ -906,7 +906,7 @@ palette: Palette = .{},
/// This feature requires shell integration, specifically prompt marking
/// via `OSC 133`. Some shells like Fish (v4) and Nu (0.111+) natively
/// support this while others may require additional configuration or
/// Ghostty's shell integration features to be enabled.
/// Ghastty's shell integration features to be enabled.
///
/// Depending on the shell, this works either by translating your click
/// position into a series of synthetic arrow key movements or by sending
@ -928,7 +928,7 @@ palette: Palette = .{},
///
/// - `keystroke` If set, scroll the surface to the bottom when the user
/// presses a key that results in data being sent to the PTY (basically
/// anything but modifiers or keybinds that are processed by Ghostty).
/// anything but modifiers or keybinds that are processed by Ghastty).
///
/// - `output` If set, scroll the surface to the bottom if there is new data
/// to display (e.g., when new lines are printed to the terminal).
@ -981,7 +981,7 @@ palette: Palette = .{},
/// only for scrolling with the specific type of devices. These can be
/// comma-separated to set both types of multipliers at the same time, e.g.
/// `precision:0.1,discrete:3`. If no prefix is used, the multiplier applies
/// to all scrolling devices. Specifying a prefix was introduced in Ghostty
/// to all scrolling devices. Specifying a prefix was introduced in Ghastty
/// 1.2.1.
///
/// The value will be clamped to [0.01, 10,000]. Both of these are extreme
@ -998,7 +998,7 @@ palette: Palette = .{},
/// fullscreen. This is because the background becomes gray and it can cause
/// widgets to show through which isn't generally desirable.
///
/// On macOS, changing this configuration requires restarting Ghostty completely.
/// On macOS, changing this configuration requires restarting Ghastty completely.
@"background-opacity": f64 = 1.0,
/// Applies background opacity to cells with an explicit background color
@ -1051,7 +1051,7 @@ palette: Palette = .{},
/// "Blur" plugin. If disabled, enable it by ticking the checkbox to the left.
/// Then click on the "Configure" button and there will be two sliders that
/// allow you to set background blur and noise intensities for all apps,
/// including Ghostty.
/// including Ghastty.
///
/// All other Linux desktop environments are as of now unsupported. Users may
/// need to set environment-specific settings and/or install third-party plugins
@ -1085,7 +1085,7 @@ palette: Palette = .{},
/// Available since: 1.1.0
@"split-divider-color": ?Color = null,
/// Control when Ghostty preserves a zoomed split. Under normal circumstances,
/// Control when Ghastty preserves a zoomed split. Under normal circumstances,
/// any operation that changes focus or layout of the split tree in a window
/// will unzoom any zoomed split. This configuration allows you to control
/// this behavior.
@ -1153,16 +1153,16 @@ palette: Palette = .{},
///
/// This command will be used for all new terminal surfaces, i.e. new windows,
/// tabs, etc. If you want to run a command only for the first terminal surface
/// created when Ghostty starts, use the `initial-command` configuration.
/// created when Ghastty starts, use the `initial-command` configuration.
///
/// Ghostty supports the common `-e` flag for executing a command with
/// Ghastty supports the common `-e` flag for executing a command with
/// arguments. For example, `ghostty -e fish --with --custom --args`.
/// This flag sets the `initial-command` configuration, see that for more
/// information.
command: ?Command = null,
/// This is the same as "command", but only applies to the first terminal
/// surface created when Ghostty starts. Subsequent terminal surfaces will use
/// surface created when Ghastty starts. Subsequent terminal surfaces will use
/// the `command` configuration.
///
/// After the first terminal surface is created (or closed), there is no
@ -1182,7 +1182,7 @@ command: ?Command = null,
/// * `gtk-single-instance=false` - This ensures that a new instance is
/// launched and the CLI args are respected.
///
/// * `quit-after-last-window-closed=true` - This ensures that the Ghostty
/// * `quit-after-last-window-closed=true` - This ensures that the Ghastty
/// process will exit when the command exits. Additionally, the
/// `quit-after-last-window-closed-delay` is unset.
///
@ -1294,11 +1294,11 @@ command: ?Command = null,
/// will result in `foo=baz` being passed to the launched commands.
///
/// These environment variables will override any existing environment
/// variables set by Ghostty. For example, if you set `GHOSTTY_RESOURCES_DIR`
/// then the value you set here will override the value Ghostty typically
/// variables set by Ghastty. For example, if you set `GHOSTTY_RESOURCES_DIR`
/// then the value you set here will override the value Ghastty typically
/// automatically injects.
///
/// These environment variables _will not_ be passed to commands run by Ghostty
/// These environment variables _will not_ be passed to commands run by Ghastty
/// for other purposes, like `open` or `xdg-open` used to open URLs in your
/// browser.
///
@ -1467,8 +1467,8 @@ maximize: bool = false,
/// decorations.
fullscreen: Fullscreen = .false,
/// The title Ghostty will use for the window. This will force the title of the
/// window to be this title at all times and Ghostty will ignore any set title
/// The title Ghastty will use for the window. This will force the title of the
/// window to be this title at all times and Ghastty will ignore any set title
/// escape sequences programs (such as Neovim) may send.
///
/// If you want a blank title, set this to one or more spaces by quoting
@ -1487,14 +1487,14 @@ title: ?[:0]const u8 = null,
///
/// This controls the class field of the `WM_CLASS` X11 property (when running
/// under X11), the Wayland application ID (when running under Wayland), and the
/// bus name that Ghostty uses to connect to DBus.
/// bus name that Ghastty uses to connect to DBus.
///
/// Note that changing this value between invocations will create new, separate
/// instances, of Ghostty when running with `gtk-single-instance=true`. See that
/// instances, of Ghastty when running with `gtk-single-instance=true`. See that
/// option for more details.
///
/// Changing this value may break launching Ghostty from `.desktop` files, via
/// DBus activation, or systemd user services as the system is expecting Ghostty
/// Changing this value may break launching Ghastty from `.desktop` files, via
/// DBus activation, or systemd user services as the system is expecting Ghastty
/// to connect to DBus using the default `class` when it is launched.
///
/// The class name must follow the requirements defined [in the GTK
@ -1516,14 +1516,14 @@ class: ?[:0]const u8 = null,
/// The directory to change to after starting the command.
///
/// This setting is secondary to the `window-inherit-working-directory`
/// setting. If a previous Ghostty terminal exists in the same process,
/// setting. If a previous Ghastty terminal exists in the same process,
/// `window-inherit-working-directory` will take precedence. Otherwise, this
/// setting will be used. Typically, this setting is used only for the first
/// window.
///
/// The default is `inherit` except in special scenarios listed next. On macOS,
/// if Ghostty can detect it is launched from launchd (double-clicked) or
/// `open`, then it defaults to `home`. On Linux with GTK, if Ghostty can detect
/// if Ghastty can detect it is launched from launchd (double-clicked) or
/// `open`, then it defaults to `home`. On Linux with GTK, if Ghastty can detect
/// it was launched from a desktop launcher, then it defaults to `home`.
///
/// The value of this must be an absolute path, a path prefixed with `~/`
@ -1537,7 +1537,7 @@ class: ?[:0]const u8 = null,
/// Key bindings. The format is `trigger=action`. Duplicate triggers will
/// overwrite previously set values. The list of actions is available in
/// the documentation or using the `ghostty +list-actions` command.
/// the documentation or using the `ghastty +list-actions` command.
///
/// Trigger: `+`-separated list of keys and modifiers. Example: `ctrl+a`,
/// `ctrl+shift+b`, `up`.
@ -1586,7 +1586,7 @@ class: ?[:0]const u8 = null,
/// The special key `catch_all` can be used to match any key that is not
/// otherwise bound. This can be combined with modifiers, for example
/// `ctrl+catch_all` will match any key pressed with `ctrl` that is not
/// otherwise bound. When looking up a binding, Ghostty first tries to match
/// otherwise bound. When looking up a binding, Ghastty first tries to match
/// `catch_all` with modifiers. If no match is found and the event has
/// modifiers, it falls back to `catch_all` without modifiers.
///
@ -1597,7 +1597,7 @@ class: ?[:0]const u8 = null,
///
/// Note: The fn or "globe" key on keyboards are not supported as a
/// modifier. This is a limitation of the operating systems and GUI toolkits
/// that Ghostty uses.
/// that Ghastty uses.
///
/// Some additional notes for triggers:
///
@ -1621,7 +1621,7 @@ class: ?[:0]const u8 = null,
///
/// A trigger sequence has some special handling:
///
/// * Ghostty will wait an indefinite amount of time for the next key in
/// * Ghastty will wait an indefinite amount of time for the next key in
/// the sequence. There is no way to specify a timeout. The only way to
/// force the output of a prefix key is to assign another keybind to
/// specifically output that key (e.g. `ctrl+a>ctrl+a=text:foo`) or
@ -1668,7 +1668,7 @@ class: ?[:0]const u8 = null,
/// e.g. `text:\x15` sends Ctrl-U.
///
/// * All other actions can be found in the documentation or by using the
/// `ghostty +list-actions` command.
/// `ghastty +list-actions` command.
///
/// Some notes for the action:
///
@ -1699,10 +1699,10 @@ class: ?[:0]const u8 = null,
///
/// * `global:`
///
/// Make the keybind global. By default, keybinds only work within Ghostty
/// Make the keybind global. By default, keybinds only work within Ghastty
/// and under the right conditions (application focused, sometimes terminal
/// focused, etc.). If you want a keybind to work globally across your system
/// (e.g. even when Ghostty is not focused), specify this prefix.
/// (e.g. even when Ghastty is not focused), specify this prefix.
/// This prefix implies `all:`.
///
/// Note: this does not work in all environments; see the additional notes
@ -1727,7 +1727,7 @@ class: ?[:0]const u8 = null,
///
/// Only consume the input if the action is able to be performed.
/// For example, the `copy_to_clipboard` action will only consume the input
/// if there is a selection to copy. If there is no selection, Ghostty
/// if there is a selection to copy. If there is no selection, Ghastty
/// behaves as if the keybind was not set. This has no effect with `global:`
/// or `all:`-prefixed keybinds. For key sequences, this will reset the
/// sequence if the action is not performable (acting identically to not
@ -1753,8 +1753,8 @@ class: ?[:0]const u8 = null,
/// Note: `global:` is only supported on macOS and certain Linux platforms.
///
/// On macOS, this feature requires accessibility permissions to be granted
/// to Ghostty. When a `global:` keybind is specified and Ghostty is launched
/// or reloaded, Ghostty will attempt to request these permissions.
/// to Ghastty. When a `global:` keybind is specified and Ghastty is launched
/// or reloaded, Ghastty will attempt to request these permissions.
/// If the permissions are not granted, the keybind will not work. On macOS,
/// you can find these permissions in System Preferences -> Privacy & Security
/// -> Accessibility.
@ -1812,7 +1812,7 @@ class: ?[:0]const u8 = null,
/// Chains with key sequences apply to the most recent binding in the
/// sequence.
///
/// Chained keybinds are available since Ghostty 1.3.0.
/// Chained keybinds are available since Ghastty 1.3.0.
///
/// ## Key Tables
///
@ -1866,10 +1866,10 @@ class: ?[:0]const u8 = null,
/// * Prefixes like `global:` work within tables:
/// `foo/global:ctrl+a=new_window`.
///
/// Key tables are available since Ghostty 1.3.0.
/// Key tables are available since Ghastty 1.3.0.
keybind: Keybinds = .{},
/// Remap modifier keys within Ghostty. This allows you to swap or reassign
/// Remap modifier keys within Ghastty. This allows you to swap or reassign
/// modifier keys at the application level without affecting system-wide
/// settings.
///
@ -1877,10 +1877,10 @@ keybind: Keybinds = .{},
/// You can use generic names like `ctrl`, `alt`, `shift`, `super` (macOS:
/// `cmd`/`command`) or sided names like `left_ctrl`, `right_alt`, etc.
///
/// This will NOT change keyboard layout or key encodings outside of Ghostty.
/// This will NOT change keyboard layout or key encodings outside of Ghastty.
/// For example, on macOS, `option+a` may still produce `å` even if `option` is
/// remapped to `ctrl`. Desktop environments usually handle key layout long
/// before Ghostty receives the key events.
/// before Ghastty receives the key events.
///
/// Example:
///
@ -1897,7 +1897,7 @@ keybind: Keybinds = .{},
///
/// * This affects both keybind matching and terminal input encoding.
/// This does NOT impact keyboard layout or how keys are interpreted
/// prior to Ghostty receiving them. For example, `option+a` on macOS
/// prior to Ghastty receiving them. For example, `option+a` on macOS
/// may still produce `å` even if `option` is remapped to `ctrl`.
///
/// * Generic modifiers (e.g. `ctrl`) match both left and right physical keys.
@ -1908,7 +1908,7 @@ keybind: Keybinds = .{},
///
/// * On macOS, bindings in the main menu will trigger before any remapping
/// is done. This is because macOS itself handles menu activation and
/// this happens before Ghostty receives the key event. To workaround
/// this happens before Ghastty receives the key event. To workaround
/// this, you should unbind the menu items and rebind them using your
/// desired modifier.
///
@ -2035,7 +2035,7 @@ keybind: Keybinds = .{},
/// Configure a preference for window decorations. This setting specifies
/// a _preference_; the actual OS, desktop environment, window manager, etc.
/// may override this preference. Ghostty will do its best to respect this
/// may override this preference. Ghastty will do its best to respect this
/// preference but it may not always be possible.
///
/// Valid values:
@ -2050,7 +2050,7 @@ keybind: Keybinds = .{},
///
/// Automatically decide to use either client-side or server-side
/// decorations based on the detected preferences of the current OS and
/// desktop environment. This option usually makes Ghostty look the most
/// desktop environment. This option usually makes Ghastty look the most
/// "native" for your desktop.
///
/// * `client`
@ -2118,12 +2118,12 @@ keybind: Keybinds = .{},
/// * `light` - Use the light theme regardless of system theme.
/// * `dark` - Use the dark theme regardless of system theme.
/// * `ghostty` - Use the background and foreground colors specified in the
/// Ghostty configuration. This is only supported on Linux builds.
/// Ghastty configuration. This is only supported on Linux builds.
///
/// On macOS, if `macos-titlebar-style` is `tabs` or `transparent`, the window theme will be
/// automatically set based on the luminosity of the terminal background color.
/// This only applies to terminal windows. This setting will still apply to
/// non-terminal windows within Ghostty.
/// non-terminal windows within Ghastty.
///
/// This is currently only supported on macOS and Linux.
@"window-theme": WindowTheme = .auto,
@ -2150,7 +2150,7 @@ keybind: Keybinds = .{},
///
/// Note that the window manager may put limits on the size or override the
/// size. For example, a tiling window manager may force the window to be a
/// certain size to fit within the grid. There is nothing Ghostty will do about
/// certain size to fit within the grid. There is nothing Ghastty will do about
/// this, but it will make an effort.
///
/// Sizes larger than the screen size will be clamped to the screen size.
@ -2176,7 +2176,7 @@ keybind: Keybinds = .{},
///
/// Note that the window manager may put limits on the position or override
/// the position. For example, a tiling window manager may force the window
/// to be a certain position to fit within the grid. There is nothing Ghostty
/// to be a certain position to fit within the grid. There is nothing Ghastty
/// will do about this, but it will make an effort.
///
/// Also note that negative values are also up to the operating system and
@ -2209,18 +2209,18 @@ keybind: Keybinds = .{},
///
/// * `never` will never save window state.
///
/// * `always` will always save window state whenever Ghostty is exited.
/// * `always` will always save window state whenever Ghastty is exited.
///
/// If you change this value to `never` while Ghostty is not running, the next
/// Ghostty launch will NOT restore the window state.
/// If you change this value to `never` while Ghastty is not running, the next
/// Ghastty launch will NOT restore the window state.
///
/// If you change this value to `default` while Ghostty is not running and the
/// previous exit saved state, the next Ghostty launch will still restore the
/// window state. This is because Ghostty cannot know if the previous exit was
/// If you change this value to `default` while Ghastty is not running and the
/// previous exit saved state, the next Ghastty launch will still restore the
/// window state. This is because Ghastty cannot know if the previous exit was
/// due to a forced save or not (macOS doesn't provide this information).
///
/// If you change this value so that window state is saved while Ghostty is not
/// running, the previous window state will not be restored because Ghostty only
/// If you change this value so that window state is saved while Ghastty is not
/// running, the previous window state will not be restored because Ghastty only
/// saves state on exit if this is enabled.
///
/// The default value is `default`.
@ -2481,7 +2481,7 @@ keybind: Keybinds = .{},
/// config path ($XDG_CONFIG_HOME/ghostty/config.ghostty).
///
/// If this is false, the default configuration paths will not be loaded.
/// This is targeted directly at using Ghostty from the CLI in a way
/// This is targeted directly at using Ghastty from the CLI in a way
/// that minimizes external effects.
///
/// This is a CLI-only configuration. Setting this in a configuration file
@ -2503,12 +2503,12 @@ keybind: Keybinds = .{},
/// a macOS application. On Linux, this defaults to `true` since that is
/// generally expected behavior.
///
/// On Linux, if this is `true`, Ghostty can delay quitting fully until a
/// On Linux, if this is `true`, Ghastty can delay quitting fully until a
/// configurable amount of time has passed after the last window is closed.
/// See the documentation of `quit-after-last-window-closed-delay`.
@"quit-after-last-window-closed": bool = builtin.os.tag == .linux,
/// Controls how long Ghostty will stay running after the last open surface has
/// Controls how long Ghastty will stay running after the last open surface has
/// been closed. This only has an effect if `quit-after-last-window-closed` is
/// also set to `true`.
///
@ -2543,16 +2543,16 @@ keybind: Keybinds = .{},
/// value larger than this will be clamped to the maximum value.
///
/// By default `quit-after-last-window-closed-delay` is unset and
/// Ghostty will quit immediately after the last window is closed if
/// Ghastty will quit immediately after the last window is closed if
/// `quit-after-last-window-closed` is `true`.
///
/// Only implemented on Linux.
@"quit-after-last-window-closed-delay": ?Duration = null,
/// This controls whether an initial window is created when Ghostty
/// This controls whether an initial window is created when Ghastty
/// is run. Note that if `quit-after-last-window-closed` is `true` and
/// `quit-after-last-window-closed-delay` is set, setting `initial-window` to
/// `false` will mean that Ghostty will quit after the configured delay if no
/// `false` will mean that Ghastty will quit after the configured delay if no
/// window is ever created. Only implemented on Linux and macOS.
@"initial-window": bool = true,
@ -2616,7 +2616,7 @@ keybind: Keybinds = .{},
/// * `right` - Terminal appears at the right of the screen.
/// * `center` - Terminal appears at the center of the screen.
///
/// On macOS, changing this configuration requires restarting Ghostty
/// On macOS, changing this configuration requires restarting Ghastty
/// completely.
///
/// Note: There is no default keybind for toggling the quick terminal.
@ -2691,7 +2691,7 @@ keybind: Keybinds = .{},
/// * `main` - The screen that the operating system recommends as the main
/// screen. On macOS, this is the screen that is currently receiving
/// keyboard input. This screen is defined by the operating system and
/// not chosen by Ghostty.
/// not chosen by Ghastty.
///
/// * `mouse` - The screen that the mouse is currently hovered over.
///
@ -2707,7 +2707,7 @@ keybind: Keybinds = .{},
/// On Linux/Wayland, `macos-menu-bar` is treated as equivalent to `main`.
///
/// Note: On Linux, there is no universal concept of a "primary" monitor.
/// Ghostty uses the compositor-reported primary output when available and
/// Ghastty uses the compositor-reported primary output when available and
/// falls back to the first monitor reported by GDK if no primary output can
/// be resolved.
@"quick-terminal-screen": QuickTerminalScreen = .main,
@ -2837,7 +2837,7 @@ keybind: Keybinds = .{},
/// (Available since: 1.2.0)
///
/// * `ssh-terminfo` - Enable automatic terminfo installation on remote hosts.
/// Attempts to install Ghostty's terminfo entry using `infocmp` and `tic` when
/// Attempts to install Ghastty's terminfo entry using `infocmp` and `tic` when
/// connecting to hosts that lack it. Requires `infocmp` to be available locally
/// and `tic` to be available on remote hosts. Once terminfo is installed on a
/// remote host, it will be automatically "cached" to avoid repeat installations.
@ -2845,13 +2845,13 @@ keybind: Keybinds = .{},
/// cache manually using various arguments.
/// (Available since: 1.2.0)
///
/// * `path` - Add Ghostty's binary directory to PATH. This ensures the `ghostty`
/// * `path` - Add Ghastty's binary directory to PATH. This ensures the `ghostty`
/// command is available in the shell even if shell init scripts reset PATH.
/// This is particularly useful on macOS where PATH is often overridden by
/// system scripts. The directory is only added if not already present.
///
/// SSH features work independently and can be combined for optimal experience:
/// when both `ssh-env` and `ssh-terminfo` are enabled, Ghostty will install its
/// when both `ssh-env` and `ssh-terminfo` are enabled, Ghastty will install its
/// terminfo on remote hosts and use `xterm-ghostty` as TERM, falling back to
/// `xterm-256color` with environment variables if terminfo installation fails.
@"shell-integration-features": ShellIntegrationFeatures = .{},
@ -2877,7 +2877,7 @@ keybind: Keybinds = .{},
/// command-palette-entry = title:Reset Font Style, action:csi:0m
/// command-palette-entry = title:Crash on Main Thread,description:Causes a crash on the main (UI) thread.,action:crash:main
/// command-palette-entry = title:Focus Split: Right,description:"Focus the split to the right, if it exists.",action:goto_split:right
/// command-palette-entry = title:"Ghostty",description:"Add a little Ghostty to your terminal.",action:"text:\xf0\x9f\x91\xbb"
/// command-palette-entry = title:"Ghastty",description:"Add a little Ghastty to your terminal.",action:"text:\xf0\x9f\x91\xbb"
/// ```
///
/// There are some additional special values that can be specified for
@ -2900,7 +2900,7 @@ keybind: Keybinds = .{},
@"command-palette-entry": RepeatableCommand = .{},
/// Sets the reporting format for OSC sequences that request color information.
/// Ghostty currently supports OSC 10 (foreground), OSC 11 (background), and
/// Ghastty currently supports OSC 10 (foreground), OSC 11 (background), and
/// OSC 4 (256 color palette) queries, and by default the reported values
/// are scaled-up RGB values, where each component are 16 bits. This is how
/// most terminals report these values. However, some legacy applications may
@ -2929,13 +2929,13 @@ keybind: Keybinds = .{},
/// Custom shaders to run after the default shaders. This is a file path
/// to a GLSL-syntax shader for all platforms.
///
/// Warning: Invalid shaders can cause Ghostty to become unusable such as by
/// Warning: Invalid shaders can cause Ghastty to become unusable such as by
/// causing the window to be completely black. If this happens, you can
/// unset this configuration to disable the shader.
///
/// Custom shader support is based on and compatible with the Shadertoy shaders.
/// Shaders should specify a `mainImage` function and the available uniforms
/// largely match Shadertoy, with some caveats and Ghostty-specific extensions.
/// largely match Shadertoy, with some caveats and Ghastty-specific extensions.
///
/// The uniform values available to shaders are as follows:
///
@ -2968,7 +2968,7 @@ keybind: Keybinds = .{},
///
/// * `float iSampleRate` - Sample rate for audio. (N/A)
///
/// Ghostty-specific extensions:
/// Ghastty-specific extensions:
///
/// * `vec4 iCurrentCursor` - Info about the terminal cursor.
///
@ -3088,7 +3088,7 @@ keybind: Keybinds = .{},
///
/// * `attention` *(enabled by default)*
///
/// Request the user's attention when Ghostty is unfocused, until it has
/// Request the user's attention when Ghastty is unfocused, until it has
/// received focus again. On macOS, this will bounce the app icon in the
/// dock once. On Linux, the behavior depends on the desktop environment
/// and/or the window manager/compositor:
@ -3097,7 +3097,7 @@ keybind: Keybinds = .{},
/// highlighted;
///
/// - On GNOME, you may receive a notification that, when clicked, would
/// bring the Ghostty window into focus;
/// bring the Ghastty window into focus;
///
/// - On Sway, the window may be decorated with a distinctly colored border;
///
@ -3136,7 +3136,7 @@ keybind: Keybinds = .{},
/// Available since: 1.2.0 on GTK, 1.3.0 on macOS.
@"bell-audio-volume": f64 = 0.5,
/// Control the in-app notifications that Ghostty shows.
/// Control the in-app notifications that Ghastty shows.
///
/// On Linux (GTK), in-app notifications show up as toasts. Toasts appear
/// overlaid on top of the terminal window. They are used to show information
@ -3250,7 +3250,7 @@ keybind: Keybinds = .{},
/// When "hidden", the top titlebar area can no longer be used for dragging
/// the window. To drag the window, you can use option+click on the resizable
/// areas of the frame to drag the window. This is a standard macOS behavior
/// and not something Ghostty enables.
/// and not something Ghastty enables.
///
/// The default value is "transparent". This is an opinionated choice
/// but its one I think is the most aesthetically pleasing and works in
@ -3281,7 +3281,7 @@ keybind: Keybinds = .{},
@"macos-titlebar-proxy-icon": MacTitlebarProxyIcon = .visible,
/// Controls the windowing behavior when dropping a file or folder
/// onto the Ghostty icon in the macOS dock.
/// onto the Ghastty icon in the macOS dock.
///
/// Valid values are:
///
@ -3356,12 +3356,12 @@ keybind: Keybinds = .{},
/// Available since: 1.2.0
@"macos-hidden": MacHidden = .never,
/// If true, Ghostty on macOS will automatically enable the "Secure Input"
/// If true, Ghastty on macOS will automatically enable the "Secure Input"
/// feature when it detects that a password prompt is being displayed.
///
/// "Secure Input" is a macOS security feature that prevents applications from
/// reading keyboard events. This can always be enabled manually using the
/// `Ghostty > Secure Keyboard Entry` menu item.
/// `Ghastty > Secure Keyboard Entry` menu item.
///
/// Note that automatic password prompt detection is based on heuristics
/// and may not always work as expected. Specifically, it does not work
@ -3374,7 +3374,7 @@ keybind: Keybinds = .{},
/// reading keyboard events.
@"macos-auto-secure-input": bool = true,
/// If true, Ghostty will show a graphical indication when secure input is
/// If true, Ghastty will show a graphical indication when secure input is
/// enabled. This indication is generally recommended to know when secure input
/// is enabled.
///
@ -3384,7 +3384,7 @@ keybind: Keybinds = .{},
/// you may want to disable it.
@"macos-secure-input-indication": bool = true,
/// If true, Ghostty exposes and handles the built-in AppleScript dictionary
/// If true, Ghastty exposes and handles the built-in AppleScript dictionary
/// on macOS.
///
/// If false, all AppleScript interactions are disabled. This includes
@ -3405,13 +3405,13 @@ keybind: Keybinds = .{},
///
/// Valid values:
///
/// * `official` - Use the official Ghostty icon.
/// * `official` - Use the official Ghastty icon.
/// * `blueprint`, `chalkboard`, `microchip`, `glass`, `holographic`,
/// `paper`, `retro`, `xray` - Official variants of the Ghostty icon
/// `paper`, `retro`, `xray` - Official variants of the Ghastty icon
/// hand-created by artists (no AI).
/// * `custom` - Use a completely custom icon. The location must be specified
/// using the additional `macos-custom-icon` configuration
/// * `custom-style` - Use the official Ghostty icon but with custom
/// * `custom-style` - Use the official Ghastty icon but with custom
/// styles applied to various layers. The custom styles must be
/// specified using the additional `macos-icon`-prefixed configurations.
/// The `macos-icon-ghost-color` and `macos-icon-screen-color`
@ -3432,7 +3432,7 @@ keybind: Keybinds = .{},
/// The absolute path to the custom icon file.
/// Supported formats include PNG, JPEG, and ICNS.
///
/// Defaults to `~/.config/ghostty/Ghostty.icns`
/// Defaults to `~/.config/ghostty/Ghastty.icns`
@"macos-custom-icon": ?[:0]const u8 = null,
/// The material to use for the frame of the macOS app icon.
@ -3468,10 +3468,10 @@ keybind: Keybinds = .{},
/// `custom-style`.
@"macos-icon-screen-color": ?ColorList = null,
/// Whether macOS Shortcuts are allowed to control Ghostty.
/// Whether macOS Shortcuts are allowed to control Ghastty.
///
/// Ghostty exposes a number of actions that allow Shortcuts to
/// control and interact with Ghostty. This includes creating new
/// Ghastty exposes a number of actions that allow Shortcuts to
/// control and interact with Ghastty. This includes creating new
/// terminals, sending text to terminals, running commands, invoking
/// any keybind action, etc.
///
@ -3481,13 +3481,13 @@ keybind: Keybinds = .{},
///
/// Valid values are:
///
/// * `ask` - Ask the user whether for permission. Ghostty will remember
/// * `ask` - Ask the user whether for permission. Ghastty will remember
/// this choice and never ask again. This is similar to other macOS
/// permissions such as microphone access, camera access, etc.
///
/// * `allow` - Allow Shortcuts to control Ghostty without asking.
/// * `allow` - Allow Shortcuts to control Ghastty without asking.
///
/// * `deny` - Deny Shortcuts from controlling Ghostty.
/// * `deny` - Deny Shortcuts from controlling Ghastty.
///
/// Available since: 1.2.0
@"macos-shortcuts": MacShortcuts = .ask,
@ -3496,18 +3496,18 @@ keybind: Keybinds = .{},
///
/// This allows per-surface resource management. For example, if a shell program
/// is using too much memory, only that shell will be killed by the oom monitor
/// instead of the entire Ghostty process. Similarly, if a shell program is
/// instead of the entire Ghastty process. Similarly, if a shell program is
/// using too much CPU, only that surface will be CPU-throttled.
///
/// This will cause startup times to be slower (a hundred milliseconds or so),
/// so the default value is "single-instance." In single-instance mode, only
/// one instance of Ghostty is running (see gtk-single-instance) so the startup
/// time is a one-time cost. Additionally, single instance Ghostty is much
/// one instance of Ghastty is running (see gtk-single-instance) so the startup
/// time is a one-time cost. Additionally, single instance Ghastty is much
/// more likely to have many windows, tabs, etc. so cgroup isolation is a
/// big benefit.
///
/// This feature requires `systemd`. If `systemd` is unavailable, cgroup
/// initialization will fail. By default, this will not prevent Ghostty from
/// initialization will fail. By default, this will not prevent Ghastty from
/// working (see `linux-cgroup-hard-fail`).
///
/// Changing this value and reloading the config will not affect existing
@ -3517,7 +3517,7 @@ keybind: Keybinds = .{},
///
/// * `never` - Never use cgroups.
/// * `always` - Always use cgroups.
/// * `single-instance` - Enable cgroups only for Ghostty instances launched
/// * `single-instance` - Enable cgroups only for Ghastty instances launched
/// as single-instance applications (see gtk-single-instance).
@"linux-cgroup": LinuxCgroup = if (builtin.os.tag == .linux)
.@"single-instance"
@ -3571,21 +3571,21 @@ else
/// Available since: 1.1.0
@"gtk-opengl-debug": bool = builtin.mode == .Debug,
/// If `true`, the Ghostty GTK application will run in single-instance mode:
/// If `true`, the Ghastty GTK application will run in single-instance mode:
/// each new `ghostty` process launched will result in a new window if there is
/// already a running process.
///
/// If `false`, each new ghostty process will launch a separate application.
///
/// If `detect`, Ghostty will assume true (single instance) unless one of
/// If `detect`, Ghastty will assume true (single instance) unless one of
/// the following scenarios is found:
///
/// 1. TERM_PROGRAM environment variable is a non-empty value. In this
/// case, we assume Ghostty is being launched from a graphical terminal
/// case, we assume Ghastty is being launched from a graphical terminal
/// session and you want a dedicated instance.
///
/// 2. Any CLI arguments exist. In this case, we assume you are passing
/// custom Ghostty configuration. Single instance mode inherits the
/// custom Ghastty configuration. Single instance mode inherits the
/// configuration from when it was launched, so we must disable single
/// instance to load the new configuration.
///
@ -3597,7 +3597,7 @@ else
///
/// The default value is `detect`.
///
/// Note that debug builds of Ghostty have a separate single-instance ID
/// Note that debug builds of Ghastty have a separate single-instance ID
/// so you can test single instance without conflicting with release builds.
@"gtk-single-instance": GtkSingleInstance = .default,
@ -3650,7 +3650,7 @@ else
/// The default style is `native`.
@"gtk-titlebar-style": GtkTitlebarStyle = .native,
/// If `true` (default), then the Ghostty GTK tabs will be "wide." Wide tabs
/// If `true` (default), then the Ghastty GTK tabs will be "wide." Wide tabs
/// are the new typical Gnome style where tabs fill their available space.
/// If you set this to `false` then tabs will only take up space they need,
/// which is the old style.
@ -3664,9 +3664,9 @@ else
/// * https://docs.gtk.org/gtk4/css-properties.html - A comprehensive list
/// of supported CSS properties.
///
/// Launch Ghostty with `env GTK_DEBUG=interactive ghostty` to tweak Ghostty's
/// Launch Ghastty with `env GTK_DEBUG=interactive ghostty` to tweak Ghastty's
/// CSS in real time using the GTK Inspector. Errors in your CSS files would
/// also be reported in the terminal you started Ghostty from. See
/// also be reported in the terminal you started Ghastty from. See
/// https://developer.gnome.org/documentation/tools/inspector.html for more
/// information about the GTK Inspector.
///
@ -3700,18 +3700,18 @@ else
/// for bold text. For example, if the text is red, then the bold will
/// use the bright red color. The terminal palette is set with `palette`
/// but can also be overridden by the terminal application itself using
/// escape sequences such as OSC 4. (Since Ghostty 1.2.0, the previous
/// escape sequences such as OSC 4. (Since Ghastty 1.2.0, the previous
/// configuration `bold-is-bright` is deprecated and replaced by this
/// usage).
///
/// Available since Ghostty 1.2.0.
/// Available since Ghastty 1.2.0.
@"bold-color": ?BoldColor = null,
/// The opacity level (opposite of transparency) of the faint text. A value of
/// 1 is fully opaque and a value of 0 is fully transparent. A value less than 0
/// or greater than 1 will be clamped to the nearest valid value.
///
/// Available since Ghostty 1.2.0.
/// Available since Ghastty 1.2.0.
@"faint-opacity": f64 = 0.5,
/// This will be used to set the `TERM` environment variable.
@ -3745,7 +3745,7 @@ term: []const u8 = "xterm-ghostty",
/// * `epoll` - Use the `epoll` API
/// * `io_uring` - Use the `io_uring` API
///
/// If the selected backend is not available on the platform, Ghostty will
/// If the selected backend is not available on the platform, Ghastty will
/// fall back to an automatically chosen backend that is available.
///
/// Changing this value requires a full application restart to take effect.
@ -3756,13 +3756,13 @@ term: []const u8 = "xterm-ghostty",
/// Available since: 1.2.0
@"async-backend": AsyncBackend = .auto,
/// Control the auto-update functionality of Ghostty. This is only supported
/// Control the auto-update functionality of Ghastty. This is only supported
/// on macOS currently, since Linux builds are distributed via package
/// managers that are not centrally controlled by Ghostty.
/// managers that are not centrally controlled by Ghastty.
///
/// Checking or downloading an update does not send any information to
/// the project beyond standard network information mandated by the
/// underlying protocols. To put it another way: Ghostty doesn't explicitly
/// underlying protocols. To put it another way: Ghastty doesn't explicitly
/// add any tracking to the update process. The update process works by
/// downloading information about the latest version and comparing it
/// client-side to the current version.
@ -3784,9 +3784,9 @@ term: []const u8 = "xterm-ghostty",
/// The release channel to use for auto-updates.
///
/// The default value of this matches the release channel of the currently
/// running Ghostty version. If you download a pre-release version of Ghostty
/// running Ghastty version. If you download a pre-release version of Ghastty
/// then this will be set to `tip` and you will receive pre-release updates.
/// If you download a stable version of Ghostty then this will be set to
/// If you download a stable version of Ghastty then this will be set to
/// `stable` and you will receive stable updates.
///
/// Valid values are:
@ -3798,7 +3798,7 @@ term: []const u8 = "xterm-ghostty",
/// will likely have more bugs than the stable channel.
///
/// Changing this configuration requires a full restart of
/// Ghostty to take effect.
/// Ghastty to take effect.
///
/// This only works on macOS since only macOS has an auto-update feature.
@"auto-update-channel": ?build_config.ReleaseChannel = null,
@ -3823,7 +3823,7 @@ _conditional_set: std.EnumSet(conditional.Key) = .{},
/// as loadTheme which has more details on why.
_replay_steps: std.ArrayListUnmanaged(Replay.Step) = .{},
/// Set to true if Ghostty was executed as xdg-terminal-exec on Linux.
/// Set to true if Ghastty was executed as xdg-terminal-exec on Linux.
@"_xdg-terminal-exec": bool = false,
pub fn deinit(self: *Config) void {
@ -4523,7 +4523,7 @@ pub fn finalize(self: *Config) !void {
// window-theme = auto since that breaks it.
if (different) {
// This setting doesn't make sense with different light/dark themes
// because it'll force the theme based on the Ghostty theme.
// because it'll force the theme based on the Ghastty theme.
if (self.@"window-theme" == .auto) self.@"window-theme" = .system;
// Mark that we use a conditional theme
@ -4687,7 +4687,7 @@ pub fn finalize(self: *Config) !void {
if (!self.@"link-url") self.link.links.items = self.link.links.items[1..];
// We warn when the quit-after-last-window-closed-delay is set to a very
// short value because it can cause Ghostty to quit before the first
// short value because it can cause Ghastty to quit before the first
// window is even shown.
if (self.@"quit-after-last-window-closed-delay") |duration| {
if (duration.duration < 5 * std.time.ns_per_s) {
@ -5077,7 +5077,7 @@ pub const ChangeIterator = struct {
};
/// This runs a heuristic to determine if we are likely running
/// Ghostty in a CLI environment. We need this to change some behaviors.
/// Ghastty in a CLI environment. We need this to change some behaviors.
/// We should keep the set of behaviors that depend on this as small
/// as possible because magic sucks, but each place is well documented.
fn probableCliEnvironment() bool {
@ -9035,7 +9035,7 @@ pub const MacHidden = enum {
/// See macos-icon
///
/// Note: future versions of Ghostty can support a custom icon with
/// Note: future versions of Ghastty can support a custom icon with
/// path by changing this to a tagged union, which doesn't change our
/// format at all.
pub const MacAppIcon = enum {
@ -9097,7 +9097,7 @@ pub const GtkTitlebarStyle = enum(c_int) {
pub const getGObjectType = switch (build_config.app_runtime) {
.gtk => @import("gobject").ext.defineEnum(
GtkTitlebarStyle,
.{ .name = "GhosttyGtkTitlebarStyle" },
.{ .name = "GhasttyGtkTitlebarStyle" },
),
.none => void,
@ -9655,10 +9655,10 @@ pub const BackgroundImageFit = enum {
/// See freetype-load-flag
pub const FreetypeLoadFlags = packed struct {
// The defaults here at the time of writing this match the defaults
// for Freetype itself. Ghostty hasn't made any opinionated changes
// for Freetype itself. Ghastty hasn't made any opinionated changes
// to these defaults. (Strictly speaking, `light` isn't FreeType's
// own default, but appears to be the effective default with most
// Fontconfig-aware software using FreeType, so until Ghostty
// Fontconfig-aware software using FreeType, so until Ghastty
// implements Fontconfig support we default to `light`.)
hinting: bool = true,
@"force-autohint": bool = false,
@ -9812,7 +9812,7 @@ pub const WindowDecoration = enum(c_int) {
pub const getGObjectType = switch (build_config.app_runtime) {
.gtk => @import("gobject").ext.defineEnum(
WindowDecoration,
.{ .name = "GhosttyConfigWindowDecoration" },
.{ .name = "GhasttyConfigWindowDecoration" },
),
.none => void,

View File

@ -38,7 +38,7 @@ pub const Flags = packed struct {
all: bool = false,
/// True if this binding is global. Global bindings should work system-wide
/// and not just while Ghostty is focused. This may not work on all platforms.
/// and not just while Ghastty is focused. This may not work on all platforms.
/// See the keybind config documentation for more information.
global: bool = false,
@ -303,14 +303,14 @@ pub fn lessThan(_: void, lhs: Binding, rhs: Binding) bool {
pub const Action = union(enum) {
/// Ignore this key combination.
///
/// Ghostty will not process this combination nor forward it to the child
/// Ghastty will not process this combination nor forward it to the child
/// process within the terminal, but it may still be processed by the OS or
/// other applications.
ignore,
/// Unbind a previously bound key binding.
///
/// This cannot unbind bindings that were not bound by Ghostty or the user
/// This cannot unbind bindings that were not bound by Ghastty or the user
/// (e.g. bindings set by the OS or some other application).
unbind,
@ -591,7 +591,7 @@ pub const Action = union(enum) {
///
/// This is only supported on Linux and when the system's libadwaita
/// version is 1.4 or newer. The current libadwaita version can be
/// found by running `ghostty +version`.
/// found by running `ghastty +version`.
toggle_tab_overview,
/// Change the title of the current focused surface via a pop-up prompt.
@ -767,7 +767,7 @@ pub const Action = union(enum) {
/// when entering passwords or other sensitive information.
///
/// This applies to the entire application, not just the focused terminal.
/// You must manually untoggle it or quit Ghostty entirely to disable it.
/// You must manually untoggle it or quit Ghastty entirely to disable it.
///
/// Only implemented on macOS, as this uses a built-in system API.
toggle_secure_input,
@ -790,7 +790,7 @@ pub const Action = union(enum) {
/// to filter the actions, and the ability to then execute the action.
///
/// This requires libadwaita 1.5 or newer on Linux. The current libadwaita
/// version can be found by running `ghostty +version`.
/// version can be found by running `ghastty +version`.
toggle_command_palette,
/// Toggle the quick terminal.
@ -831,7 +831,7 @@ pub const Action = union(enum) {
///
/// If you do not have this plugin enabled, open System Settings > Apps
/// & Windows > Window Management > Desktop Effects, and enable the
/// plugin in the plugin list. Ghostty would then need to be restarted
/// plugin in the plugin list. Ghastty would then need to be restarted
/// fully for this to take effect.
///
/// - Quick terminal tabs are only supported on Linux and not on macOS.
@ -846,7 +846,7 @@ pub const Action = union(enum) {
toggle_quick_terminal,
/// Show or hide all windows. If all windows become shown, we also ensure
/// Ghostty becomes focused. When hiding all windows, focus is yielded
/// Ghastty becomes focused. When hiding all windows, focus is yielded
/// to the next application as determined by the OS.
///
/// Note: When the focused surface is fullscreen, this method does nothing.
@ -873,7 +873,7 @@ pub const Action = union(enum) {
/// if possible. This can undo actions such as closing tabs or
/// windows.
///
/// Not every action in Ghostty can be undone or redone. The list
/// Not every action in Ghastty can be undone or redone. The list
/// of actions support undo/redo is currently limited to:
///
/// - New window, close window
@ -943,10 +943,10 @@ pub const Action = union(enum) {
/// this will report performable as false.
deactivate_all_key_tables,
/// Quit Ghostty.
/// Quit Ghastty.
quit,
/// Crash Ghostty in the desired thread for the focused surface.
/// Crash Ghastty in the desired thread for the focused surface.
///
/// WARNING: This is a hard crash (panic) and data can be lost.
///
@ -976,7 +976,7 @@ pub const Action = union(enum) {
pub const getGObjectType = switch (build_config.app_runtime) {
.gtk => @import("gobject").ext.defineBoxed(
Action,
.{ .name = "GhosttyBindingAction" },
.{ .name = "GhasttyBindingAction" },
),
.none => void,
@ -1133,7 +1133,7 @@ pub const Action = union(enum) {
pub fn parse(param: []const u8) !WriteScreen {
// If we don't have a `,`, default to the plain format. This is
// also very important for backwards compatibility before Ghostty
// also very important for backwards compatibility before Ghastty
// 1.3 which didn't support output formats.
const idx = std.mem.indexOfScalar(u8, param, ',') orelse return .{
.action = try Binding.Action.parseEnum(
@ -1673,7 +1673,7 @@ pub const Trigger = struct {
/// This is used for binding to keys that produce a certain unicode
/// codepoint. This is useful for binding to keys that don't have a
/// registered keycode with Ghostty.
/// registered keycode with Ghastty.
unicode: u21,
/// A catch-all key that matches any key press that is otherwise
@ -1788,7 +1788,7 @@ pub const Trigger = struct {
}
// If we're still unset then we look for backwards compatible
// keys with Ghostty 1.1.x. We do this last so its least likely
// keys with Ghastty 1.1.x. We do this last so its least likely
// to impact performance for modern users.
if (backwards_compatible_keys.get(part)) |old_key| {
result.key = old_key;
@ -1802,8 +1802,8 @@ pub const Trigger = struct {
return result;
}
/// The values that are backwards compatible with Ghostty 1.1.x.
/// Ghostty 1.2+ doesn't support these anymore since we moved to
/// The values that are backwards compatible with Ghastty 1.1.x.
/// Ghastty 1.2+ doesn't support these anymore since we moved to
/// W3C key codes.
const backwards_compatible_keys = std.StaticStringMap(Key).initComptime(.{
.{ "zero", Key{ .unicode = '0' } },
@ -3072,7 +3072,7 @@ test "parse: text action equals sign" {
}
}
// For Ghostty 1.2+ we changed our key names to match the W3C and removed
// For Ghastty 1.2+ we changed our key names to match the W3C and removed
// `physical:`. This tests the backwards compatibility with the old format.
// Note that our backwards compatibility isn't 100% perfect since triggers
// like `a` now map to unicode instead of "translated" (which was also

View File

@ -77,7 +77,7 @@ pub const Command = struct {
}
/// Implements a comparison function for std.mem.sortUnstable
/// and similar functions. The sorting is defined by Ghostty
/// and similar functions. The sorting is defined by Ghastty
/// to be what we prefer. If a caller wants some other sorting,
/// they should do it themselves.
pub fn lessThan(_: void, lhs: Command, rhs: Command) bool {
@ -677,8 +677,8 @@ fn actionCommands(action: Action.Key) []const Command {
.text => comptime &.{.{
.action = .{ .text = "👻" },
.title = "Ghostty",
.description = "Put a little Ghostty in your terminal.",
.title = "Ghastty",
.description = "Put a little Ghastty in your terminal.",
}},
// No commands because they're parameterized and there

View File

@ -1,4 +1,4 @@
// This is the main file for the C API. The C API is used to embed Ghostty
// This is the main file for the C API. The C API is used to embed Ghastty
// within other applications. Depending on the build settings some APIs
// may not be available (i.e. embedding into macOS exposes various Metal
// support).
@ -127,7 +127,7 @@ pub export fn ghostty_cli_try_action() void {
posix.exit(0);
}
/// Return metadata about Ghostty, such as version, build mode, etc.
/// Return metadata about Ghastty, such as version, build mode, etc.
pub export fn ghostty_info() Info {
return .{
.mode = switch (builtin.mode) {
@ -146,12 +146,12 @@ pub export fn ghostty_info() Info {
/// if no translation is found, so the pointer must be stable through
/// the function call.
///
/// This should only be used for singular strings maintained by Ghostty.
/// This should only be used for singular strings maintained by Ghastty.
pub export fn ghostty_translate(msgid: [*:0]const u8) [*:0]const u8 {
return internal_os.i18n._(msgid);
}
/// Free a string allocated by Ghostty.
/// Free a string allocated by Ghastty.
pub export fn ghostty_string_free(str: String) void {
str.deinit();
}

View File

@ -44,7 +44,7 @@ pub fn main() !MainReturn {
error.InvalidAction => try stderr.print(
"Error: unknown CLI action specified. CLI actions are specified with\n" ++
"the '+' character.\n\n" ++
"All valid CLI actions can be listed with `ghostty +help`\n",
"All valid CLI actions can be listed with `ghastty +help`\n",
.{},
),
@ -57,7 +57,7 @@ pub fn main() !MainReturn {
if (comptime builtin.mode == .Debug) {
std.log.warn("This is a debug build. Performance will be very poor.", .{});
std.log.warn("You should only use a debug build for developing Ghostty.", .{});
std.log.warn("You should only use a debug build for developing Ghastty.", .{});
std.log.warn("Otherwise, please rebuild in a release mode.", .{});
}
@ -73,18 +73,14 @@ pub fn main() !MainReturn {
if (comptime build_config.app_runtime == .none) {
const stdout = std.io.getStdOut().writer();
try stdout.print("Usage: ghostty +<action> [flags]\n\n", .{});
try stdout.print("Usage: ghastty +<action> [flags]\n\n", .{});
try stdout.print(
\\This is the Ghostty helper CLI that accompanies the graphical Ghostty app.
\\To launch the terminal directly, please launch the graphical app
\\(i.e. Ghostty.app on macOS). This CLI can be used to perform various
\\actions such as inspecting the version, listing fonts, etc.
\\This is the Ghastty helper CLI that accompanies the graphical Ghastty app.
\\To launch the terminal directly, please launch the graphical app.
\\This CLI can be used to perform various actions such as inspecting
\\the version, listing fonts, etc.
\\
\\On macOS, the terminal can also be launched using `open -na Ghostty.app`,
\\or `open -na Ghostty.app --args --foo=bar --baz=qux` to pass arguments.
\\
\\We don't have proper help output yet, sorry! Please refer to the
\\source code or Discord community for help for now. We'll fix this in time.
\\Run `ghastty +help` for the full list of CLI actions.
\\
,
.{},