Ghostty配置

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 可以合成粗体、斜体和粗斜体。可以将此项设置为 false 或 true 来完全禁用或启用合成样式,也可以使用 “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: 设置用于计算字形簇的单元格宽度的方法。可以使用 unicode 或 legacy.
  • freetype-load-flags: 启用 FreeType 加载标志,例如 hinting, force-autohint, monochrome 和 autohint。

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: 设置光标样式,如 block、bar、underline 或 block_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: 设置窗口颜色空间, 例如 srgb 或 display-p3.
  • window-width, window-height: 设置初始窗口大小(以单元格为单位)。
  • window-save-state: 设置是否保存和恢复窗口状态, 可以选择default, never 或 always。
  • window-step-resize: 以单元格大小为增量调整窗口大小, 仅在 macOS 上支持。
  • window-new-tab-position: 设置新标签的创建位置, 可以是 current 或 end.
  • resize-overlay: 设置调整大小覆盖层的显示方式,例如 always, never 或 after-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, right 或 center.
  • 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+a 或 ctrl+shift+b。 可以使用 physical: 前缀来指定物理按键映射,例如 ctrl+physical:a. 可以使用 > 分隔的多个触发器来定义组合快捷键,例如 ctrl+a>n. all: 前缀将快捷键应用于所有终端. global: 前缀使快捷键在系统全局生效(仅限 macOS). unconsumed: 前缀使快捷键不消耗输入. action 是要执行的操作,例如 new_window、copy_to_clipboard 或 csi:A。

Ghostty 其他设置

  • config-file: 指定要读取的其他配置文件,可以重复使用.
  • config-default-files: 控制是否加载默认配置文件路径.
  • auto-update: 设置自动更新功能,例如 off、check 或 download.
  • auto-update-channel: 设置自动更新通道,例如 stable 或 tip.
  • shell-integration: 设置是否启用shell 集成,可以选择 none、detect、bash、elvish、fish 或 zsh.
  • shell-integration-features: 设置要启用的shell 集成功能,例如 cursor, sudo 和 title.
  • 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, true 或 false.
  • macos-titlebar-style: 设置 macOS 标题栏样式,例如 native, transparent, tabs 或 hidden.
  • macos-titlebar-proxy-icon: 设置 macOS 标题栏中的代理图标是否可见,可以选择 visible 或 hidden.
  • macos-option-as-alt: 设置 macOS 的 Option 键是否作为 Alt 键处理.
  • macos-window-shadow: 设置是否启用 macOS 窗口阴影.
  • macos-auto-secure-input: 设置是否自动启用安全输入.
  • macos-secure-input-indication: 设置是否显示安全输入指示.
  • macos-icon: 设置 macOS 应用图标,例如 official 或 custom-style.
  • macos-icon-frame: 设置 macOS 应用图标的框架材质, 例如 aluminum, beige, plastic, 或 chrome.
  • macos-icon-ghost-color: 设置 macOS 应用图标中幽灵的颜色.
  • macos-icon-screen-color: 设置 macOS 应用图标中屏幕的颜色.
  • linux-cgroup: 设置是否将每个终端界面放入一个专用的 Linux cgroup,可以选择 never、always 或 single-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, raised 或 raised-border.
  • gtk-wide-tabs: 设置 GTK 标签是否为宽标签.
  • gtk-adwaita: 设置是否启用 Adwaita 主题支持.
  • desktop-notifications: 设置是否允许终端应用程序显示桌面通知.
  • bold-is-bright: 设置粗体文本是否使用亮色调色板.

默认快捷键

基本操作

  • super+page_up: 向上滚动页面。
  • super+page_down: 向下滚动页面。
  • super+home: 滚动到顶部。
  • super+end: 滚动到底部。
  • super+t: 新建标签页。
  • super+n: 新建窗口。
  • super+w: 关闭当前终端界面(标签页或分割窗口)。
  • super+shift+w: 关闭当前窗口。
  • super+shift+enter: 切换分割窗口缩放。
  • super+alt+shift+w: 关闭所有窗口。
  • super+q: 退出 Ghostty。
  • super+enter: 切换全屏模式。
  • super+ctrl+f: 切换全屏模式。
  • super+shift+left_bracket: 切换到上一个标签页。
  • super+shift+right_bracket: 切换到下一个标签页。
  • ctrl+tab: 切换到下一个标签页。
  • ctrl+shift+tab: 切换到上一个标签页。
  • super+equal 或 super+plus: 增加字体大小。
  • super+minus: 减小字体大小。
  • super+zero: 重置字体大小。
  • super+c: 复制到剪贴板。
  • super+v: 从剪贴板粘贴。
  • super+a: 全选。
  • super+k: 清空屏幕。
  • super+comma: 打开配置文件。
  • super+shift+comma: 重新加载配置文件。
  • super+alt+i: 切换检查器。

分屏操作

  • super+d: 在右侧新建分割窗口。
  • super+shift+d: 在下方新建分割窗口。
  • super+alt+right: 切换到右侧分割窗口。
  • super+alt+left: 切换到左侧分割窗口。
  • super+alt+up: 切换到上方分割窗口。
  • super+alt+down: 切换到下方分割窗口。
  • super+left_bracket: 切换到上一个分割窗口。
  • super+right_bracket: 切换到下一个分割窗口。
  • super+ctrl+left: 向左调整分割窗口大小。
  • super+ctrl+right: 向右调整分割窗口大小。
  • super+ctrl+up: 向上调整分割窗口大小。
  • super+ctrl+down: 向下调整分割窗口大小。
  • super+ctrl+equal: 使分割窗口大小相等。

光标和选择操作

  • super+up: 跳到上一个提示符位置。
  • super+down: 跳到下一个提示符位置。
  • super+shift+up: 跳到上一个提示符位置。
  • super+shift+down: 跳到下一个提示符位置。
  • shift+up: 向上调整选择范围。
  • shift+down: 向下调整选择范围。
  • shift+left: 向左调整选择范围。
  • shift+right: 向右调整选择范围。
  • shift+page_up: 向上调整选择范围(翻页)。
  • shift+page_down: 向下调整选择范围(翻页)。
  • shift+home: 调整选择范围到行首。
  • shift+end: 调整选择范围到行尾。

其他操作

  • alt+left: 发送 esc:b 序列 (通常是向左移动一个单词)。
  • alt+right: 发送 esc:f 序列 (通常是向右移动一个单词)。
  • super+left: 发送 text:\x01 (通常是移动到行首)。
  • super+right: 发送 text:\x05 (通常是移动到行尾)。
  • super+alt+shift+j: write_scrollback_file:open。
  • super+shift+j: write_scrollback_file:paste。

物理按键绑定

  • super+physical:one: 跳转到标签页 1。
  • super+physical:two: 跳转到标签页 2。
  • super+physical:three: 跳转到标签页 3。
  • super+physical:four: 跳转到标签页 4。
  • super+physical:five: 跳转到标签页 5。
  • super+physical:six: 跳转到标签页 6。
  • super+physical:seven: 跳转到标签页 7。
  • super+physical:eight: 跳转到标签页 8。
  • super+physical:nine: 跳转到标签页 9。
  • super+physical:zero: 跳转到最后一个标签页。

特殊按键说明

  • super 键:
  • 在 macOS 系统上,通常是 Command 键 ⌘。
  • 在 Windows 和 Linux 系统上,通常是 Windows 键 或 Super 键。
  • equal 键: 通常是键盘上的 等号键 =。
  • plus 键: 通常是键盘上的 加号键 +。
  • minus 键: 通常是键盘上的 减号键 -。
  • comma 键: 通常是键盘上的 逗号键 ,。
  • left_bracket 键: 通常是键盘上的 左方括号键 [。
  • right_bracket 键: 通常是键盘上的 右方括号键 ]。
  • zero 键: 通常是键盘上的 数字键 0。
  • alt 键:
  • 在 macOS 系统上,通常是 Option 键 ⌥。
  • 在 Windows 和 Linux 系统上,通常是 Alt 键。
  • page_up 键: 通常是键盘上的 翻页向上键。
  • page_down 键: 通常是键盘上的 翻页向下键。
  • home 键: 通常是键盘上的 Home 键。
  • end 键: 通常是键盘上的 End 键。
  • 关于物理按键:物理按键指的是键盘上实际的硬件按键,而不是操作系统根据键盘布局映射的逻辑按键。Ghostty 支持使用 physical: 前缀来指定物理按键码,例如 super+physical:four 表示绑定到键盘上物理位置为数字 4 的按键,而不是根据当前键盘布局映射的逻辑上的数字 4 键。使用物理按键绑定可以确保在不同键盘布局下,快捷键的行为保持一致。

注意事项

  • 修饰键: 修饰键包括 shift、ctrl、alt 和 super,可以与其它按键组合使用。
  • 组合键序列: 可以使用 > 分隔多个按键,形成组合键序列。
  • 物理按键码: 使用 physical: 前缀可以指定物理按键码,而不是逻辑按键码。
  • 自定义: 这些默认快捷键都可以通过 keybind 配置进行自定义,并且可以使用 global: 或 all: 前缀来调整快捷键的作用范围。
0%