主题与兼容性
导入与导出主题、主题包 .wtheme、主题市场、主题编辑器,自制主题的文件结构,以及应用兼容性规则
「外观」页的主题卡(选主题、导入、导出、主题市场)与底部的主题编辑器卡,以及自制主题、修复个别应用显示问题的方法。
获取更多主题
| 入口 | 说明 |
|---|---|
| 导入主题 0.122 新增 | 打开导入对话框,三条路任选:本地文件(.toml 主题 / .wtheme 主题包)、HTTPS 链接、粘贴主题原文 |
| 导出主题 0.122 新增 | 把下拉里选中的主题打成 .wtheme 发给别人,见主题包 |
| 打开主题市场 | 在浏览器里打开主题市场,挑选现成主题 |
| 主题编辑器 | 见下 |
从链接导入会先校验
从 HTTPS 链接导入主题时会先交给核心程序校验内容再落盘;导入前的对话框会提示确认来源可信。
主题包 .wtheme 0.122 新增
主题一旦带了背景图、图标这类资源,单个 .toml 文件就分发不动了——图片没法塞进 TOML。
主题包把主题文件和它引用的资源打成一个 .wtheme,收发都只是一个文件。
纯配色主题不需要它,继续用 .toml 或链接分享即可。
装一个主题包:
- 「外观」页 → 主题卡 → 导入主题 → 选择文件(
.toml与.wtheme在同一个选择框里) - 或双击
.wtheme文件——这条需要先在系统集成注册关联; 不想注册关联的话走上面那条,一样能装
两条路都会先弹确认框告诉你包里是什么(主题名、作者、版本、几个资源文件)再决定装不装—— 主题包多半是从网上下回来的,双击就直接改掉当前外观不合适。撞上同名主题时会问要不要覆盖。
做一个主题包:「外观」页 → 主题卡 → 导出主题,选个保存位置即可。 导出的是主题选择里此刻选中的那个,改了还没保存也照导——所见即所导。
命令行也能做,且能直接指定要导哪个,见 wind_input theme export:
wind_input theme export 我的主题 D:\分享\我的主题.wtheme内置主题也导得出——把内置主题改了配色想发给别人,这是最省事的路子。
包里装什么:
| 条目 | 说明 |
|---|---|
theme.toml | 主题本体,必须有 |
assets/ | 背景图等资源,主题文件里以 assets/xxx.png 相对路径引用 |
preview.png | 可选,主题市场用的预览图 |
package.toml | 可选,主题名/作者/版本等元信息;没有时从主题自身的 [meta] 读 |
主题目录里的其它文件(编辑器草稿、系统生成的缩略图数据库等)不会进包。
包有大小限制
最多 200 个文件、解压后 32 MB。超出的包导不出也导不进——这道限制挡的是误把原图拷进
assets/ 那类情况,正常主题远够用。
主题编辑器
开启后,Web 版主题编辑器可以直接读写本机主题,边改边看效果——不必反复导出导入文件。
服务仅监听本机回环地址,不对外网开放。三档:
| 档位 | 说明 |
|---|---|
| 关闭 | 不启动本地服务 |
| 本次开启 | 本次运行期间可用,重启后回到关闭 |
| 自动开启 | 每次启动都开 |
开启后可复制本地连接地址,粘贴到编辑器里建立连接。
自制主题
把主题文件放入 %APPDATA%\WindInput\themes\<主题名>\theme.toml(macOS 为 ~/Library/Application Support/WindInput/themes/<主题名>/theme.toml),即可在「主题选择」中出现。若主题名与内置主题相同(如 default),你这份会整份替换内置的那个,见同结构覆盖机制。
复杂配色建议用编辑器做
主题文件为 TOML 格式(v3)。最省事的做法是继承一个内置主题,只覆盖需要改动的部分;复杂的几何与配色建议直接用主题编辑器可视化制作。内置主题文件位于安装目录下的 data\themes\ 文件夹,可作模板。
快速上手:继承内置主题
声明 base 并只写要改的颜色,其余从内置主题继承:
base = "default"
[meta]
name = "我的蓝色主题"
[colors]
primary = "#0066CC" # 只改主色,其余外观沿用 default主题文件结构
主题由若干顶层块组成,均可选,未写的部分从被继承主题回退:
| 块 | 说明 |
|---|---|
base | 继承的内置主题名(default / msime 或内置基础主题 _base / _qingfeng) |
[meta] | 元信息:name(必填)、version、author 等 |
[colors] | 颜色 token 表(扁平),语义色的唯一来源,[views] 通过 ${token} 引用 |
[resources] | 图片资源引用(可选,支持亮暗分设) |
[views] | 几何与布局(候选窗 / 工具栏 / 菜单的盒模型) |
[behavior] | 主题推荐的行为默认(见下) |
[colors] 块是所有颜色的唯一来源:
- 亮暗分设:值写成
{ light = "...", dark = "..." }表示亮暗不同颜色;写成单个字符串则亮暗共用;只写一侧时另一侧自动回退 - token 引用:
"${tokenName}"引用同表中另一个 token 的值 - 颜色格式:
"#RGB"/"#RRGGBB"/"#RRGGBBAA"(支持 alpha 透明度)/"transparent"
[behavior] 中的值是主题给用户的推荐默认,用户可在「外观」页单独覆盖,覆盖跨主题切换保持:
| 字段 | 类型 | 说明 |
|---|---|---|
font_size | number | 候选字号基准(pt) |
always_show_pager | bool | 始终显示翻页栏(即使只有一页) |
hide_pager | bool | 隐藏整个翻页栏(含箭头) |
show_page_number | bool | 显示页码文字 |
pager_align | string | 独立翻页栏行的水平对齐(left / center / right,默认 center);仅竖排独立翻页栏生效,翻页栏并入编码栏时固定右对齐 |
vertical_max_width | number | 竖排模式最大宽度(dp),0 = 不限 0.118 新增。出厂 0.118 起由 600 改为 0——超宽候选此前会被硬裁且不带省略号。仍需上限的主题显式配即可 |
[views] 按具名节点描述各窗口的盒模型(内外边距、边框、圆角、背景、字体、阴影等),字段较多且随版本演进。制作或调整几何时,建议直接以内置主题文件为模板,或用主题编辑器可视化编辑。
背景图的九宫格中段 0.122 新增
背景图配了 slice(九宫格边距)时,中段默认是拉伸的。候选窗的宽度随候选内容不停变,于是有纹理的背景会跟着「呼吸」——这在中段占了原图大半宽度的主题上尤其明显。
给那个图片节点加 slice_repeat 即可改成平铺:
slice_repeat = "repeat" # 两轴都平铺
slice_repeat = ["repeat", "stretch"] # 横轴平铺、纵轴拉伸取值只有 repeat 与 stretch(不写 = stretch,即 0.121 及以前的行为)。分轴写是有用的:横轴随宽度变,纵轴通常固定,一个值管两轴会让一张宽图在 40px 高的编码条里从「压扁到条高」变成「只取顶部 40 行」。
macOS 上的生效范围
主题在 macOS 上只覆盖输入法自绘的界面:候选窗完全生效,状态提示气泡与候选悬停提示框的配色生效。
不生效的两处:
- 功能主菜单——macOS 上是原生系统菜单,由系统绘制,外观跟随 macOS 自身的浅色 / 深色与强调色。主题里的菜单配色与几何对它无效
- 工具栏——macOS 没有浮动工具栏,改用菜单栏的输入模式指示器,主题里的工具栏节点无处落地
也就是说,同一份主题在两个平台通用,[views] 里的菜单与工具栏节点在 macOS 上被忽略、其余部分照常。「主题风格」(跟随系统 / 浅色 / 深色)仍然有效。详见 macOS 版 · 菜单不支持主题。
应用兼容性规则
候选框在某个程序里飘到错误位置、候选窗被盖住看不见、或想让某个程序默认英文——这些靠 compat.toml 的逐应用规则修正,与主题无关。完整字段与用法见应用兼容性规则。
对这篇文档有疑问,或发现内容有误?
欢迎到文档仓库提 issue,写明问题时附上本页链接即可。