Ghostty 终端配置指南

Ghostty 终端配置详解:打造个性化终端体验

文章目录

Ghostty 的配置主要通过配置文件进行,也可以通过命令行参数进行设置。本指南详细介绍了 Ghostty 终端的各项配置选项,帮助您根据个人喜好和需求定制终端体验。Ghostty 提供了丰富的配置项,涵盖字体、颜色、快捷键、窗口行为等多个方面,允许您对终端进行精细化调整。

Ghostty 配置文件说明

Ghostty 的配置文件使用键值对格式,例如 font-family = "Monaco"。配置文件中的路径是相对于包含 config-file 指令的文件的,命令行参数的路径是相对于当前工作目录的。配置文件可以嵌套使用,使用 config-file 配置项来加载其他配置文件。配置文件的加载顺序是它们被定义的顺序,也就是说在当前配置项后面的 config-file 会覆盖前面的设置。可以使用 ? 前缀来表示可选的配置文件,例如 ?config-file = "optional.conf",如果文件不存在,则不会报错。

Ghostty 字体配置

  • font-family: 设置首选字体系列。可以多次使用此配置,指定当主要字体中没有所需字符时,使用的备用字体。在 macOS 上,默认使用 Apple Color Emoji;在 Linux 上,默认使用 Noto Emoji,但您可以通过此配置覆盖此行为.
  • font-family-bold, font-family-italic, font-family-bold-italic: 分别设置粗体斜体粗斜体的字体系列。如果未设置特定样式,则会搜索常规样式(font-family)的变体。如果找不到样式变体,Ghostty 会使用常规样式。
  • font-style, font-style-bold, font-style-italic, font-style-bold-italic: 指定用于终端字体样式的命名字体样式。例如,“Iosevka Heavy”的样式为“Heavy”。 可以使用这些字段完全禁用字体样式,将配置值设置为 false 即可。
  • font-synthetic-style: 控制是否合成字体样式。Ghostty 可以合成粗体、斜体和粗斜体。可以将此项设置为 falsetrue 来完全禁用或启用合成样式,也可以使用 “no-bold”, “no-italic”, 和 “no-bold-italic” 来禁用特定样式。
  • font-feature: 应用字体特性,可以多次重复以启用多个字体特性,例如 ss20-ss20(禁用)。要禁用编程连字,请使用 -calt
  • font-size: 设置字体大小(以磅为单位)。可以使用非整数值,Ghostty 将选择最接近的整数像素大小。
  • font-variation, font-variation-bold, font-variation-italic, font-variation-bold-italic: 为可变字体设置字体变体值。格式为 id=value,例如 wght=700
  • font-codepoint-map: 将一个或多个 Unicode 码位映射到特定的字体名称,例如 U+ABCD=fontname
  • font-thicken: 使用更粗的笔画绘制字体,目前仅在 macOS 上支持。

字体微调

  • adjust-cell-width, adjust-cell-height: 调整单元格宽度和高度。这些值可以是整数或百分比。
  • adjust-font-baseline: 调整文本基线与单元格底部的距离。
  • adjust-underline-position, adjust-underline-thickness: 调整下划线的位置和粗细。
  • adjust-strikethrough-position, adjust-strikethrough-thickness: 调整删除线的位置和粗细。
  • adjust-overline-position, adjust-overline-thickness: 调整上划线的位置和粗细。
  • adjust-cursor-thickness: 调整光标的粗细。
  • adjust-cursor-height: 调整光标的高度。
  • adjust-box-thickness: 调整框线字符的粗细.
  • grapheme-width-method: 设置用于计算字形簇的单元格宽度的方法。可以使用 unicodelegacy.
  • freetype-load-flags: 启用 FreeType 加载标志,例如 hinting, force-autohint, monochromeautohint

Ghostty 主题和颜色配置

  • theme: 设置主题。可以是内置主题名称、自定义主题名称或自定义主题文件的绝对路径。可以使用 ghostty +list-themes 命令查看可用主题列表。可以使用 light:theme-name,dark:theme-name 的语法,为浅色和深色模式指定不同的主题.
  • background: 设置窗口背景颜色
  • foreground: 设置窗口前景色
  • selection-foreground, selection-background: 设置选中文本的前景色和背景色。
  • selection-invert-fg-bg: 交换选中文本的单元格前景色和背景色。
  • minimum-contrast: 设置前景色和背景色之间的最小对比度
  • palette: 设置 256 色调色板。格式为 N=HEXCODE,其中 N 为 0 到 255。
  • cursor-color: 设置光标颜色
  • cursor-invert-fg-bg: 交换光标下单元格的前景色和背景色。
  • cursor-opacity: 设置光标不透明度
  • cursor-style: 设置光标样式,如 blockbarunderlineblock_hollow.
  • cursor-style-blink: 设置光标闪烁状态
  • cursor-text: 设置光标下文本的颜色.

Ghostty 鼠标和剪贴板配置

  • cursor-click-to-move: 启用通过 alt+click(Linux)或 option+click(macOS)在提示符处移动光标的功能。
  • mouse-hide-while-typing: 在输入时隐藏鼠标
  • mouse-shift-capture: 确定是否捕获鼠标点击的Shift 键.
  • mouse-scroll-multiplier: 设置鼠标滚轮滚动距离的乘数。
  • clipboard-read: 控制是否允许从系统剪贴板读取内容,可以选择 ask, allow, 或 deny.
  • clipboard-write: 控制是否允许向系统剪贴板写入内容,可以选择 ask, allow, 或 deny.
  • clipboard-trim-trailing-spaces: 裁剪复制到剪贴板的数据的尾随空格.
  • clipboard-paste-protection: 启用粘贴保护,防止粘贴不安全文本.
  • clipboard-paste-bracketed-safe: 设置带括号的粘贴是否被认为是安全的。
  • copy-on-select: 设置是否在选择文本时自动复制到剪贴板.
  • click-repeat-interval: 设置重复点击的时间间隔.

Ghostty 窗口和界面配置

  • background-opacity: 设置背景不透明度
  • background-blur-radius: 设置背景模糊半径,仅在 macOS 上支持。
  • unfocused-split-opacity: 设置未聚焦分割窗格的不透明度
  • unfocused-split-fill: 设置未聚焦分割窗格的颜色
  • window-padding-x: 设置窗口水平内边距
  • window-padding-y: 设置窗口垂直内边距
  • window-padding-balance: 平衡窗口多余的内边距
  • window-padding-color: 设置窗口内边距颜色.
  • window-vsync: 启用垂直同步,仅在 macOS 上支持。
  • window-inherit-working-directory: 新窗口和标签是否继承工作目录
  • window-inherit-font-size: 新窗口和标签是否继承字体大小
  • window-decoration: 启用或禁用窗口装饰(标题栏和边框)。
  • window-title-font-family: 设置窗口标题标签使用的字体.
  • window-theme: 设置窗口主题,例如 auto, system, light, dark, 或 ghostty.
  • window-colorspace: 设置窗口颜色空间, 例如 srgbdisplay-p3.
  • window-width, window-height: 设置初始窗口大小(以单元格为单位)。
  • window-save-state: 设置是否保存和恢复窗口状态, 可以选择default, neveralways
  • window-step-resize: 以单元格大小为增量调整窗口大小, 仅在 macOS 上支持。
  • window-new-tab-position: 设置新标签的创建位置, 可以是 currentend.
  • resize-overlay: 设置调整大小覆盖层的显示方式,例如 always, neverafter-first.
  • resize-overlay-position: 设置调整大小覆盖层的位置.
  • resize-overlay-duration: 设置调整大小覆盖层的持续时间.
  • focus-follows-mouse: 设置窗口焦点是否跟随鼠标.
  • confirm-close-surface: 关闭标签页/窗口前是否需要确认.
  • quit-after-last-window-closed: 在最后一个窗口关闭后是否退出 Ghostty.
  • quit-after-last-window-closed-delay: 设置在最后一个窗口关闭后,Ghostty 保持运行的时间.
  • initial-window: 是否在启动时创建初始窗口.
  • quick-terminal-position: 设置快速终端窗口的位置, 例如 top, bottom, left, rightcenter.
  • quick-terminal-screen: 设置快速终端窗口出现的屏幕, 例如 main, mouse, 或 macos-menu-bar.
  • quick-terminal-animation-duration: 设置快速终端的进入和退出动画持续时间
  • quick-terminal-autohide: 设置快速终端在失去焦点时是否自动隐藏.

Ghostty 终端行为配置

  • command: 设置要运行的命令,通常是 shell。
  • initial-command: 设置初始终端启动时运行的命令。
  • wait-after-command: 设置在命令退出后是否保持终端打开
  • abnormal-command-exit-runtime: 设置进程异常退出的最短运行时
  • scrollback-limit: 设置回滚缓冲区大小(以字节为单位)。
  • link-url: 启用或禁用 URL 匹配.
  • fullscreen: 设置是否以全屏模式启动新窗口.
  • title: 设置窗口标题.
  • class: 设置应用程序类的值.
  • x11-instance-name: 设置在 X11 下运行时的 X11 实例名称.
  • working-directory: 设置启动命令后更改的目录.
  • enquiry-response: 设置接收到 ENQ (0x05) 时发送的响应字符串.
  • term: 设置 TERM 环境变量.

Ghostty 快捷键配置

  • keybind: 设置快捷键绑定。格式为 trigger=action。可以使用 ghostty +list-actions 命令查看可用操作列表。
    • 触发器(trigger) 可以是 + 分隔的键和修饰符列表,例如 ctrl+actrl+shift+b
    • 可以使用 physical: 前缀来指定物理按键映射,例如 ctrl+physical:a.
    • 可以使用 > 分隔的多个触发器来定义组合快捷键,例如 ctrl+a>n.
    • all: 前缀将快捷键应用于所有终端.
    • global: 前缀使快捷键在系统全局生效(仅限 macOS).
    • unconsumed: 前缀使快捷键不消耗输入.
    • action 是要执行的操作,例如 new_windowcopy_to_clipboardcsi:A

相关阅读:Ghostty 终端默认快捷键列表

Ghostty 其他设置

  • config-file: 指定要读取的其他配置文件,可以重复使用.
  • config-default-files: 控制是否加载默认配置文件路径.
  • auto-update: 设置自动更新功能,例如 offcheckdownload.
  • auto-update-channel: 设置自动更新通道,例如 stabletip.
  • shell-integration: 设置是否启用shell 集成,可以选择 nonedetectbashelvishfishzsh.
  • shell-integration-features: 设置要启用的shell 集成功能,例如 cursor, sudotitle.
  • osc-color-report-format: 设置 OSC 颜色报告格式,可以选择 none, 8-bit, 或 16-bit.
  • vt-kam-allowed: 设置是否允许使用 KAM 模式.
  • custom-shader: 设置要运行的自定义着色器的文件路径,可以重复使用.
  • custom-shader-animation: 设置是否在使用自定义着色器运行动画循环.
  • macos-non-native-fullscreen: 设置 macOS 是否使用非原生全屏模式,可以选择 visible-menu, truefalse.
  • macos-titlebar-style: 设置 macOS 标题栏样式,例如 native, transparent, tabshidden.
  • macos-titlebar-proxy-icon: 设置 macOS 标题栏中的代理图标是否可见,可以选择 visiblehidden.
  • macos-option-as-alt: 设置 macOS 的 Option 键是否作为 Alt 键处理.
  • macos-window-shadow: 设置是否启用 macOS 窗口阴影.
  • macos-auto-secure-input: 设置是否自动启用安全输入.
  • macos-secure-input-indication: 设置是否显示安全输入指示.
  • macos-icon: 设置 macOS 应用图标,例如 officialcustom-style.
  • macos-icon-frame: 设置 macOS 应用图标的框架材质, 例如 aluminum, beige, plastic, 或 chrome.
  • macos-icon-ghost-color: 设置 macOS 应用图标中幽灵的颜色.
  • macos-icon-screen-color: 设置 macOS 应用图标中屏幕的颜色.
  • linux-cgroup: 设置是否将每个终端界面放入一个专用的 Linux cgroup,可以选择 neveralwayssingle-instance.
  • linux-cgroup-memory-limit: 设置单个终端进程的内存限制.
  • linux-cgroup-processes-limit: 设置单个终端进程的进程数限制.
  • linux-cgroup-hard-fail: 设置 cgroup 初始化失败是否会导致 Ghostty 退出.
  • gtk-single-instance: 设置 GTK 应用是否以单实例模式运行.
  • gtk-titlebar: 设置是否显示完整的 GTK 标题栏.
  • gtk-tabs-location: 设置 GTK 标签栏的位置.
  • adw-toolbar-style: 设置 Adwaita 标签栏工具栏的样式, 例如 flat, raisedraised-border.
  • gtk-wide-tabs: 设置 GTK 标签是否为宽标签.
  • gtk-adwaita: 设置是否启用 Adwaita 主题支持.
  • desktop-notifications: 设置是否允许终端应用程序显示桌面通知.
  • bold-is-bright: 设置粗体文本是否使用亮色调色板.

结语

请注意,一些配置项仅在特定的操作系统或构建版本上有效。在修改配置文件后,通常需要重启 Ghostty 才能使更改生效,或者至少需要打开新的终端窗口或标签页。

希望这份配置指南对您有所帮助!


也可以看看