配置机制与全局配置
高级主题
本文面向需要手动编辑配置文件的用户。普通用户通过设置工具即可完成配置,修改即时生效。
配置文件位置
| 文件 | 路径 |
|---|---|
| 全局配置 | %APPDATA%\WindInput\config.yaml |
| 方案配置 | %APPDATA%\WindInput\schemas\*.schema.yaml |
| 兼容性规则 | %APPDATA%\WindInput\compat.yaml |
| 主题文件 | %APPDATA%\WindInput\themes\ |
| 系统短语 | 程序内置,不可修改 |
配置加载机制
配置采用三层合并机制,优先级从低到高:
- 代码默认值 — 程序内置的默认配置
- 系统预置配置 — 随程序分发的
data/config.yaml - 用户配置 —
%APPDATA%\WindInput\config.yaml
高优先级的配置覆盖低优先级的同名字段。保存时采用 diff 保存:仅将与系统默认不同的字段写入用户配置文件,使未修改的字段能自动跟随系统默认值的更新。
INFO
如果你发现用户配置文件中只包含部分字段,这是正常现象——只保存了与默认值不同的项。
启动设置
yaml
startup:
remember_last_state: false # 记忆上次的输入状态
default_chinese_mode: true # 启动默认中文模式
default_full_width: false # 启动默认半角
default_chinese_punct: true # 启动默认中文标点输入方案
yaml
schema:
active: "wubi86" # 当前使用的方案
available: # 可切换的方案列表(顺序决定切换顺序)
- "wubi86"
- "wubi86_pinyin"
# - "pinyin" # 如需启用,取消注释并重启
# - "shuangpin"方案详情请参阅输入方案。
快捷键配置
yaml
hotkeys:
toggle_mode_keys: # 中英文切换键(可多选)
- "lshift" # 可选:lshift, rshift, lctrl, rctrl, capslock
- "rshift"
commit_on_switch: true # 切换中英文时将已有编码上屏
switch_engine: "ctrl+shift+e" # 切换输入方案
toggle_full_width: "shift+space" # 全角/半角切换
toggle_punct: "ctrl+." # 中英文标点切换
delete_candidate: "ctrl+shift+number" # 删除候选词
pin_candidate: "ctrl+number" # 置顶候选词
toggle_toolbar: "ctrl+shift+\\" # 显示/隐藏工具栏
open_settings: "ctrl+shift+]" # 打开设置工具
add_word: "ctrl+equal" # 快捷加词
global_hotkeys: [] # 注册为全局热键的快捷键名称列表全局热键
global_hotkeys 可以将指定快捷键注册为系统级全局热键,即使在其他应用聚焦时也能响应。例如:
yaml
hotkeys:
global_hotkeys:
- "switch_engine" # 全局响应切换方案
- "open_settings" # 全局响应打开设置输入行为
yaml
input:
punct_follow_mode: false # 标点是否随中英文模式切换
filter_mode: "smart" # 候选过滤:smart(智能), general(通用规范), gb18030
enter_behavior: "commit" # Enter 键行为:commit(上屏编码), clear(清空)
space_on_empty_behavior: "commit" # 空编码按空格:commit(上屏), clear(清空)
pinyin_separator: "auto" # 拼音分隔符:auto, quote, backtick, none
smart_punct_after_digit: true # 数字后智能标点(保持英文标点)
smart_punct_list: ".,:" # 数字后保持英文的标点列表
numpad_behavior: "direct" # 数字小键盘功能:direct(直接输入数字), follow_main(同主键盘)选择键与翻页键
yaml
input:
select_key_groups: # 二三候选快捷上屏键(可多选)
- "semicolon_quote" # 分号/引号
# - "comma_period" # 逗号/句号
# - "lrshift" # 左右 Shift
# - "lrctrl" # 左右 Ctrl
select_char_keys: [] # 以词定字按键(可多选),默认关闭
# - "comma_period" # 逗号/句号(从词中提取单字)
# - "minus_equal" # 减号/等号
# - "brackets" # 方括号
page_keys: # 翻页键(可多选)
- "pageupdown" # Page Up/Down
- "minus_equal" # 减号/等号
# - "brackets" # 方括号
# - "shift_tab" # Shift+Tab / Tab
highlight_keys: # 候选高亮切换键
- "arrows" # 方向键
- "tab" # Tab候选按键溢出行为
当数字键或选择键超出候选范围时,可配置处理策略:
yaml
input:
overflow_behavior:
number_key: "ignore" # 数字键无效时:ignore(忽略), commit(顶字上屏), commit_and_input(顶字上屏并输入数字)
select_key: "ignore" # 二三候选键无效时:ignore, commit, commit_and_input
select_char_key: "ignore" # 以词定字键无效时:ignore, commit, commit_and_input临时英文模式
yaml
input:
shift_temp_english:
enabled: true # 启用 Shift + 字母临时英文
show_english_candidates: true # 显示英文候选
shift_behavior: "temp_english" # temp_english(进入临时英文)或 direct_commit(直接上屏大写字母)
trigger_keys: [] # 符号键触发临时英文(可选)CapsLock 行为
yaml
input:
capslock_behavior:
cancel_on_mode_switch: false # 切换模式时取消 CapsLock 状态临时拼音模式
五笔等非拼音方案下,可通过特定按键触发临时拼音输入:
yaml
input:
temp_pinyin:
trigger_keys:
- "backtick" # 可选:backtick, semicolon, z自动配对
yaml
input:
auto_pair:
chinese: true # 中文标点自动配对
english: true # 英文标点自动配对
blacklist: [] # 应用黑名单(在这些应用中禁用自动配对)
chinese_pairs: # 中文配对标点
- "()"
- "【】"
- "{}"
- "《》"
- "〈〉"
english_pairs: # 英文配对标点
- "()"
- "[]"
- "{}"
- "<>"自定义标点映射
yaml
input:
punct_custom:
enabled: false # 启用自定义标点映射(默认关闭)
mappings: # key=源字符(引号用 "1/"2/'1/'2 表示),value=[中文半角, 英文全角, 中文全角]
"\"1": ["\u201c", "\"", "\u201c"] # 左双引号
"\"2": ["\u201d", "\"", "\u201d"] # 右双引号快捷输入
yaml
input:
quick_input:
trigger_keys: # 触发键列表(空列表=关闭)
- "semicolon" # 分号键触发快捷输入
force_vertical: true # 强制竖排显示候选
decimal_places: 6 # 计算结果小数保留位数(0 表示取整)界面设置
候选窗口
yaml
ui:
font_size: 18 # 候选词字体大小(pt)
candidates_per_page: 7 # 每页候选词数量(1-9)
font_family: "" # 自定义字体名称(留空使用系统默认)
font_path: "" # 自定义字体文件路径
inline_preedit: true # 嵌入式编码行(显示在光标处)
preedit_mode: "top" # 编码显示模式:top(独立行上方), embedded(嵌入候选行前);仅 inline_preedit=false 时生效
hide_candidate_window: false # 隐藏候选窗口
candidate_layout: "horizontal" # 候选布局:horizontal(横排), vertical(竖排)
tooltip_delay: 200 # 编码提示延迟(毫秒)主题
yaml
ui:
theme: "default" # 主题名称:default, msime 或自定义主题名
theme_style: "system" # 主题风格:system(跟随系统), light, dark文字渲染
yaml
ui:
text_render_mode: "directwrite" # 渲染引擎:directwrite, gdi, freetype
gdi_font_weight: 500 # 候选框 GDI 字重(100-900,500=中等)
gdi_font_scale: 1.0 # GDI 字体缩放(0.5-2.0)
menu_font_weight: 500 # 菜单 GDI 字重(100-900,500=中等)
menu_font_size: 12.0 # 菜单字体大小(DPI 缩放前基础值)状态指示器
yaml
ui:
status_indicator:
enabled: true # 启用状态指示器
duration: 800 # 显示时长(毫秒)
display_mode: "temp" # 显示模式:temp(临时), always(常驻)
schema_name_style: "full" # 方案名显示风格:full(完整名称)
show_mode: true # 显示中英文状态
show_punct: true # 显示标点模式
show_full_width: false # 显示全半角状态
position_mode: "follow_caret" # 定位模式:follow_caret(跟随光标), custom(固定位置)
offset_x: 0 # X 偏移量(follow_caret 模式)
offset_y: 0 # Y 偏移量(follow_caret 模式)
custom_x: 0 # 固定 X 坐标(custom 模式)
custom_y: 0 # 固定 Y 坐标(custom 模式)
font_size: 18 # 字体大小
opacity: 0.9 # 背景透明度(0.0-1.0)
background_color: "" # 自定义背景色(留空使用主题默认)
text_color: "" # 自定义文字色(留空使用主题默认)
border_radius: 6 # 圆角半径(像素)工具栏
yaml
toolbar:
visible: true # 显示工具栏高级设置
yaml
advanced:
log_level: "info" # 日志级别:debug, info, warn, error
host_render_processes: # 宿主渲染进程白名单
- "SearchHost.exe"