设置说明外观设置

主题与兼容性

导入与导出主题、主题包 .wtheme、主题市场、主题编辑器,自制主题的文件结构,以及应用兼容性规则

v0.122.0

「外观」页的主题卡(选主题、导入、导出、主题市场)与底部的主题编辑器卡,以及自制主题、修复个别应用显示问题的方法。

获取更多主题

入口说明
导入主题 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(必填)、versionauthor
[colors]颜色 token 表(扁平),语义色的唯一来源,[views] 通过 ${token} 引用
[resources]图片资源引用(可选,支持亮暗分设)
[views]几何与布局(候选窗 / 工具栏 / 菜单的盒模型)
[behavior]主题推荐的行为默认(见下)

[colors] 块是所有颜色的唯一来源:

  • 亮暗分设:值写成 { light = "...", dark = "..." } 表示亮暗不同颜色;写成单个字符串则亮暗共用;只写一侧时另一侧自动回退
  • token 引用"${tokenName}" 引用同表中另一个 token 的值
  • 颜色格式"#RGB" / "#RRGGBB" / "#RRGGBBAA"(支持 alpha 透明度)/ "transparent"

[behavior] 中的值是主题给用户的推荐默认,用户可在「外观」页单独覆盖,覆盖跨主题切换保持:

字段类型说明
font_sizenumber候选字号基准(pt)
always_show_pagerbool始终显示翻页栏(即使只有一页)
hide_pagerbool隐藏整个翻页栏(含箭头)
show_page_numberbool显示页码文字
pager_alignstring独立翻页栏行的水平对齐(left / center / right,默认 center);仅竖排独立翻页栏生效,翻页栏并入编码栏时固定右对齐
vertical_max_widthnumber竖排模式最大宽度(dp),0 = 不限 0.118 新增。出厂 0.118 起由 600 改为 0——超宽候选此前会被硬裁且不带省略号。仍需上限的主题显式配即可

[views] 按具名节点描述各窗口的盒模型(内外边距、边框、圆角、背景、字体、阴影等),字段较多且随版本演进。制作或调整几何时,建议直接以内置主题文件为模板,或用主题编辑器可视化编辑。

背景图的九宫格中段 0.122 新增

背景图配了 slice(九宫格边距)时,中段默认是拉伸的。候选窗的宽度随候选内容不停变,于是有纹理的背景会跟着「呼吸」——这在中段占了原图大半宽度的主题上尤其明显。

给那个图片节点加 slice_repeat 即可改成平铺:

slice_repeat = "repeat"                 # 两轴都平铺
slice_repeat = ["repeat", "stretch"]    # 横轴平铺、纵轴拉伸

取值只有 repeatstretch(不写 = stretch,即 0.121 及以前的行为)。分轴写是有用的:横轴随宽度变,纵轴通常固定,一个值管两轴会让一张宽图在 40px 高的编码条里从「压扁到条高」变成「只取顶部 40 行」。

macOS 上的生效范围

主题在 macOS 上只覆盖输入法自绘的界面:候选窗完全生效,状态提示气泡与候选悬停提示框的配色生效。

不生效的两处:

  • 功能主菜单——macOS 上是原生系统菜单,由系统绘制,外观跟随 macOS 自身的浅色 / 深色与强调色。主题里的菜单配色与几何对它无效
  • 工具栏——macOS 没有浮动工具栏,改用菜单栏的输入模式指示器,主题里的工具栏节点无处落地

也就是说,同一份主题在两个平台通用,[views] 里的菜单与工具栏节点在 macOS 上被忽略、其余部分照常。「主题风格」(跟随系统 / 浅色 / 深色)仍然有效。详见 macOS 版 · 菜单不支持主题

应用兼容性规则

候选框在某个程序里飘到错误位置、候选窗被盖住看不见、或想让某个程序默认英文——这些靠 compat.toml 的逐应用规则修正,与主题无关。完整字段与用法见应用兼容性规则

对这篇文档有疑问,或发现内容有误?

欢迎到文档仓库提 issue,写明问题时附上本页链接即可。

去提 issue →

本页目录