Skip to content

外观主题 ​

Dinotty 视觉风格遵循 VSCode 暗灰主题(中性灰 #8a8a8a)。内置主题管理器让你切换主题、调整字体、自定义颜色。

主题管理 ​

打开 设置 -> 外观,顶部是主题管理器:

  • 主题列表:内置、已安装、以及你自己的自定义主题
  • 当前主题:高亮显示
  • 新建主题:基于当前主题克隆
  • 导入主题:把主题文件加入你自己的主题库
  • 安装到服务器:把主题文件装到服务器上,供该服务器上的所有设备使用
  • 导出主题:把当前主题导出为 .conf 文件
  • 主题商店:安装已配置的主题源里列出的主题(见下文)

内置主题 ​

主题风格
One Dark Pro Muted默认主题,低饱和度暗灰
GitHub Dark深蓝灰,偏冷
Monokai Pro暖色调,经典编辑器配色
Solarized Dark蓝绿底,柔和不刺眼
Dracula紫色调,对比度高

色板统一遵循 muted 风格,避免高饱和糖果色(#FF5D5D 等)。

字体设置 ​

设置范围默认
字体大小8-32 px14
字体族系统字体 + 常见等宽字体SF Mono / Cascadia Code / Consolas
行高1.0-2.01.4
字符间距-2 to 50

字体下拉菜单显示当前字体的预览(每个字体项用自身字体渲染)。

等宽字体推荐

  • macOS: SF Mono, JetBrains Mono
  • Windows: Cascadia Code, Consolas
  • Linux: Fira Code, JetBrains Mono

主题编辑器 ​

点击主题管理器的「编辑」按钮打开主题编辑器:

  • 颜色 token 编辑:每个 token 一行,颜色选择器修改
  • 实时预览:右侧 sample terminal 实时显示效果
  • 保存 / 另存为:覆盖当前主题或保存为新主题

颜色 token ​

主题由一组 token 定义:

Token用途
--bg-*背景层级(base / panel / hover / active)
--fg-*前景层级(base / muted / subtle)
--color-*强调色(accent / success / warning / error)
--border-*边框层级

新增颜色应先在 frontend/src/styles/base.css 注册为 token,再在主题里引用 var(--color-*),避免在组件里硬编码 hex。详见 Visual Style。

工作区颜色 ​

工作区徽章的颜色独立于主题:

  • 创建工作区时自动分配
  • 从 One Dark Pro muted 色板选
  • 右键工作区 -> 修改颜色

详见 工作区管理 -> 工作区颜色。

主题来源 ​

共有三种,彼此并不等价:

来源存放位置谁可见可否编辑
内置(12 套)编译进应用所有人不可,但可隐藏
已安装服务器上的 themes/该服务器上的所有设备不可,只能移除后重装
自定义服务器上的 settings.json该服务器上的所有设备可以,上限 15 套

已安装主题刻意不计入 15 套的自定义主题库:它们是分享来的文件,而不是你自己的作品, 否则会被这个上限截断。

当前主题是每个设备各自的,保存在本地,因此手机和桌面可以选择不同的主题, 同时共用同一份已安装主题和自定义主题。

配置目录 ​

已安装的主题文件保存在:

平台路径
macOS / Linux~/.config/dinotty/themes/
Windows%APPDATA%\dinotty\themes\
Linux 服务端/var/lib/dinotty/themes/

每个主题一个文件,可以是 <id>.json(应用自己写入的格式),也可以是 Ghostty .conf(导出主题产出的格式)——两种都会被读取,所以导出的主题可以直接放回来。 文件只被当作数据读取,绝不会被执行,也可以手工编辑或备份。

你的自定义主题不在这里:它们位于 settings.json,因为那是可编辑的设置, 而不是共享内容。

主题商店 ​

默认不启用,需要把服务器指向一个主题源:

sh
DINOTTY_THEMES_REGISTRY_URL=https://example.com/dinotty/themes/registry.json dinotty

主题源是一个 JSON 文档:

json
{
  "schema": 1,
  "themes": [
    {
      "id": "dracula-soft",
      "name": "Dracula Soft",
      "version": "1.0.0",
      "minAppVersion": "0.28.0",
      "url": "https://example.com/dinotty/themes/dracula-soft.json",
      "sha256": "<可选>"
    }
  ]
}

主题源和主题文件都由服务器去拉取,客户端只能指定 id,无法让服务器去抓取任意地址。 条目里带了 sha256 时会与下载到的字节比对,不匹配则拒绝安装。

下一步 ​

Released under the MIT license