外观与主题
主题选择与亮暗跟随、候选窗口与提示信息、状态与工具栏设置,以及自定义主题与应用兼容性规则
在设置工具的「外观」页自定义候选窗与工具栏的视觉呈现。所有修改即时生效。
配置项参考
本页讲外观功能怎么用。每项对应的配置键、取值范围与默认值集中在外观配置。
主题
| 选项 | 说明 |
|---|---|
| 主题选择 | 候选窗与工具栏的主题样式(下拉显示主题名) |
| 主题风格 | 亮色、暗色或跟随系统 |
| 翻页栏显示 | 覆盖主题配置中翻页栏的显示方式 |
| 显示页码 | 翻页栏可见时是否显示页码文字 |
内置五个主题,均可作为自定义的模板起点:
- 清风·蓝(
default)——默认主题,清风设计体系,主色现代蓝 - 清风·绿(
jade)——祖母绿色调 - 清风·橙(
amber)——暖金橙色调 - 清风·紫(
violet)——薰衣草紫色调 - 微软风格(
msime)——微软蓝主色,紧凑布局,文字序号,左侧强调条
主题风格可选跟随 Windows 亮暗模式、始终亮色、始终暗色。
翻页栏
翻页栏包含翻页箭头与页码,可独立于主题配置进行覆盖,四种显示方式:
| 方式 | 说明 |
|---|---|
| 跟随主题 | 默认,由当前主题决定 |
| 隐藏 | 整个翻页栏(含箭头)不渲染 |
| 自动 | 仅当候选超过一页时显示 |
| 始终显示 | 始终显示翻页栏,包括只有一页时 |
页码文字可单独设为显示、隐藏,或留空跟随主题。
候选窗口
| 选项 | 说明 |
|---|---|
| 候选字号跟随主题 | 开启后候选字号由主题决定;关闭可在下方自定义 |
| 候选字号 | 候选词字体大小;开启「跟随主题」时不可用 |
| 候选窗字体 | 自定义候选窗字体,留空跟随主题字体 |
| 每页候选数 | 每页显示的候选词数量 |
| 扩展档每页候选数 | 临拼/快捷/短语等场景单独的每页候选数;关闭分档时与上面相同 |
| 隐藏候选窗 | 盲打/自动上屏场景不显示候选窗口;隐藏后仍可输入 |
| 编码显示方式 | 编码(组合区)的显示位置,见下 |
| 候选窗排列 | 候选词横排或竖排 |
| 候选窗在上方时反转顺序 | 候选窗显示在光标上方时,反转候选项的排列顺序(使第一候选靠近光标);可与「编码栏置底」叠加 |
| 候选窗在上方时编码栏置底 | 候选窗显示在光标上方时,将编码栏与候选栏上下调换,使编码栏沉到底部贴近光标 |
| 翻页栏并入编码栏 | 翻页栏右对齐显示在编码栏行(竖排可省一行);仅「编码显示方式」为候选窗顶部独立栏时生效 |
| 候选文本最大字数 | 候选文本超过此字数时截断并追加省略号 |
| 自定义序号标签 | 为候选序号自定义标签字符(如 asdfg);留空用默认 1–9 |
| 命令栏候选前缀 | 命令候选前的提示符号 |
编码显示方式
编码栏(组合区)有三种显示位置:
| 方式 | 说明 |
|---|---|
| 内嵌应用 | 编码内嵌应用光标处,候选窗不显示编码栏 |
| 候选窗顶部 | 编码显示在候选窗上方的独立栏 |
| 候选窗内联 | 编码嵌入候选窗第一个单元格前 |
候选项提示信息
鼠标悬停在候选上时弹出的提示框,可分项开关。
| 选项 | 说明 |
|---|---|
| 悬停延时 | 鼠标停留多久后弹出提示框;越大越不易误触 |
| 编码反查 | 悬停候选时在主码表中反查该词的标准编码并显示 |
| 拼音反查 | 悬停候选词时显示拼音读音 |
| 显示多音字所有读音 | 关闭则仅显示首音 |
| 拆字反查 | 悬停候选词时显示字根拆字信息(需方案支持) |
| 调试信息 | 悬停候选词时显示编码来源、权重等调试元数据 |
状态提示
状态提示是切换输入状态时在光标处闪现的小气泡。纯视觉样式(颜色/字号/透明度/圆角)由主题决定,此处只调整行为与位置。
| 选项 | 说明 |
|---|---|
| 启用状态提示气泡 | 切换输入状态时显示提示气泡 |
| 显示模式 | 临时闪现后自动消失,或有输入焦点时始终显示 |
| 焦点切换时显示 | 切换到别的输入框时也提示一次当前状态 |
| 显示时长 | 临时显示模式下气泡停留时间 |
| 方案名显示样式 | 全名或图标短称(取方案图标短称,无则回退全名) |
| 定位方式 | 跟随光标或固定在自定义位置 |
「常驻显示」「焦点切换时显示」「固定位置」这三项也可以右键状态气泡直接勾选,不必打开设置。
焦点切换时显示:换个输入框就提示一次
默认情况下,气泡只在你主动切换中英文、标点、全半角时才闪一下。开启这一项后,切换到另一个输入框时也会提示一次——用来回答「我现在切过来的这个框,输入法是什么状态」,省去先敲一个字试出来。
由于常驻显示本来就在获焦时显示,这一项只在「临时显示」模式下有意义。
跟随光标定位时,某些应用要等你输入第一个字之后才会告诉输入法光标的准确位置。为避免气泡飘到错误的地方,这种情况下不显示。若你常用的应用总是不显示又确实需要,把定位方式改成「固定位置」即可——固定位置不依赖光标。
定位方式与偏移、固定坐标在「扩展设置」对话框中调整:
| 选项 | 说明 |
|---|---|
| 跟随光标 | 气泡跟随光标 |
| 固定位置 | 气泡固定在屏幕坐标 |
| 水平偏移 | 相对光标下方居中的水平偏移(正=右) |
| 垂直偏移 | 相对光标下方的垂直偏移(正=下) |
| 固定位置 X / Y | 固定定位时气泡的屏幕坐标 |
模式指示
进入临拼/双拼/快符/英文等模式时的标识,三种样式:
| 样式 | 说明 |
|---|---|
| 短称 | 显示 拼/双/快/英/符 等短称 |
| 全称 | 显示完整模式名 |
| 不显示 | 不显示模式标识 |
工具栏
| 选项 | 说明 |
|---|---|
| 显示工具栏 | 在屏幕上显示可拖动的输入法状态栏 |
| 全屏时隐藏工具栏 | 当前台应用进入全屏(游戏、视频、演示等)时自动隐藏工具栏 |
| 自动隐藏工具栏 | 工具栏显示一段时间无交互后淡出隐藏;鼠标悬停不隐藏,切换中英等状态变化时重新显示 |
| 自动隐藏延时 | 工具栏显示多久后开始淡出 |
工具栏可通过快捷键 Ctrl + Shift + \ 切换显示/隐藏。
获取更多主题
- 导入 TOML 主题——选择本地
.toml主题文件导入,成功后即可在「主题选择」中使用 - 打开主题市场——前往 market.windinput.com 挑选现成主题
- 主题编辑器直连——开启后,Web 版主题编辑器可直接读写本机主题,边改边看效果。服务仅监听本机回环地址,不对外网开放;分「关闭 / 本次开启 / 自动开启」三档,开启后可复制本地连接地址到编辑器
自定义主题
将主题文件放入 %APPDATA%\WindInput\themes\<主题名>\theme.toml,即可在「外观」页的「主题选择」中出现。若主题名与内置主题相同(如 default),你这份会整份替换内置的那个,见同结构覆盖机制。
主题文件为 TOML 格式
主题文件为 TOML 格式(v3)(theme.toml)。最省事的做法是继承一个内置主题,只覆盖需要改动的部分;复杂的几何与配色建议直接用主题编辑器可视化制作。
快速上手:继承内置主题
声明 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 | 竖排模式最大宽度(像素) |
[views] 按具名节点描述各窗口的盒模型(内外边距、边框、圆角、背景、字体、阴影等),字段较多且随版本演进。制作或调整几何时,建议直接以内置主题文件为模板,或用主题编辑器可视化编辑,避免逐字段手写出错。内置主题文件位于安装目录下的 data\themes\ 文件夹。
应用兼容性主题规则
兼容性规则用于修复特定应用中候选框定位、光标获取等问题。规则文件为 TOML 的 [[apps]] 数组表,加载顺序为系统预置(<安装目录>\data\compat.toml)→ 用户覆盖(%APPDATA%\WindInput\compat.toml),用户层同进程名规则覆盖系统层。
[[apps]]
process = "Weixin.exe" # 进程名(不区分大小写)
comment = "微信 - 使用 rect.top 定位候选框"
caret_use_top = true # 使用 caret rect 的 top 而非 bottom 定位候选框
[[apps]]
process = "Everything.exe"
comment = "文件搜索框,默认英文"
initial_mode = "english" # 进入该应用时初始为英文,之后仍可手动切换| 字段 | 类型 | 说明 |
|---|---|---|
process | string | 进程名,不区分大小写,如 Notepad.exe |
comment | string | 备注说明,仅用于文档与可读性 |
caret_use_top | bool | 使用 caret rect 的 top 而非 bottom 定位候选框 |
first_show_mode | string | 候选框首显策略:wait(默认)/ fast / instant |
initial_mode | string | 进入该应用时的初始中英状态:english / chinese;不写=跟随全局 |
initial_punct | string | 进入该应用时的初始中英标点,取值同上;不写=跟随全局 |
host_render | bool | 候选窗改由服务进程渲染后经共享内存转交宿主内的 DLL 上屏,默认 false。见下方说明 |
caret_use_top 适用于 GetTextExt 返回的 height 不稳定的 WebView 应用(如微信的 Qt WebView 输入框,height 在 1↔20px 间跳变导致 bottom 漂移,但 top 始终稳定)。清风输入法已内置微信的兼容性规则,会自动修正候选框定位。如果其他应用也有类似问题,可在用户 compat.toml 中添加规则;修改后通过托盘菜单的重载配置即可生效。
宿主代理渲染 host_render 0.113 新增
少数宿主运行在受限容器中、或其窗口层级(Band)盖过一切普通窗口,输入法自绘的候选窗被压在下面看不见——Win11 开始菜单 / 任务栏搜索的 SearchHost.exe 就是这样。host_render = true 让候选窗改由服务进程渲染成位图,经共享内存交给宿主进程内的输入法 DLL 上屏。
SearchHost.exe 已内置为系统预置条目,无需自行添加。普通应用不要开:它多绕一层渲染路径,出问题时本地窗口路径更好排查。
0.113 起从 config.toml 迁到这里
这份白名单在 0.112 及以前是 config.toml 的 compat.host_render_processes(字符串数组)。0.113 起 [compat] 顶级域整体移除,改为本表的 host_render 布尔字段,与其余按进程名匹配的规则同库。旧键写在 config.toml 里不再有任何效果。
host_render 手改后需重启输入法服务才生效——托盘的「重载配置」只刷新那些能即时套用的规则,不重建渲染通道。
应用独立的初始输入状态
initial_mode 与 initial_punct 让特定应用在获得焦点时自动切到指定状态,适合文件搜索框、终端、代码编辑器这类主要输入英文的场景。
最快的设置方式是不改文件:在目标应用里右键点击输入法图标 → 应用独立配置 → 初始输入模式 → 选择「英文」。菜单会把等效规则写入用户层 compat.toml 并立即生效。子菜单第一行是当前焦点应用的进程名(灰色,仅作展示,点不动),下面依次是三项规则:
| 子菜单项 | 对应字段 | 可选 |
|---|---|---|
| 初始输入模式 | initial_mode | 跟随全局(默认)/ 英文 / 中文 |
| 初始标点模式 | initial_punct | 跟随全局(默认)/ 英文 / 中文 |
| 候选窗首显 | first_show_mode | 等待精确坐标(默认)/ 快速显示 / 立即显示 |
选择「跟随全局」即清除该应用在这一维度上的规则。
这是「初始值」而不是「锁定」
- 每次焦点从别的应用切进来时套用一次。停留在该应用期间可以随时手动切换中英文,同一应用内换输入框(例如搜索框与结果列表之间)不会重新套用。
- 焦点离开规则应用后,下一个应用会重新按全局规则决定自己的状态。在出厂默认设置下(
input.default.state_scope = "global"且remember_last_state = false),这意味着它回到input.default.chinese_mode这个默认值,而不是它自己上次的状态。若希望每个应用各自精确记住上次状态,请另行设置input.default.state_scope = "app",两者可以叠加。 - 没有配置任何
initial_*规则的两个应用之间切换,输入状态一律保持不变,不受本功能影响。