# 设置程序的页面与设置项 设置程序 `apps/settings` 三个平台共用一份,替掉了 macOS 偏好设置和 Windows 设置程序(两者留一个版本作回退);Linux 以前没有设置界面,也用它。 本文定的是:分哪几页、每一项放哪页、页里怎么分组排序、标题怎么写、用什么控件。 ## 原则 - **按用户想改的事分页,不按代码里的分节分页。** 配置文件是 `[general]` 一大节,以前的「通用」页照搬了这一节,结果什么都往里放。 - **标题就是说明。** 能用一个短语说清的不加说明行。少数必须解释的,放进标题右边的 ⓘ,鼠标悬停(或键盘聚焦)才显示,页面上不出现大段灰字。 - **一件事只在一处。** 以前「打包日志到桌面」「打开日志目录」在「高级」和「关于」各有一份,这次每项只出现在一页。 - **只在某个平台有的项**,在别的平台不显示,不显示成灰的。哪项在哪个平台显示由 `src/support/` 的表决定:每项登记三个平台是支持、不适用还是待实现,后两种都不显示。 - **跟别的设置有依赖的项**(比如字体只对青简渲染器生效)显示成灰的,不另写说明;ⓘ 里写清依赖哪一项。 ## 页面 旧的「通用」拆成「输入」「候选」「中英文」三页,旧的「候选窗口」改名「外观」,模糊音和辅码并进「输入」,页数不变(11 页);之后加了「生词本」「实验功能」,共 13 页。 | # | 页 | 图标 | 内容 | 旧位置 | |---|---|---|---|---| | 1 | 输入 | 键盘 | 方案、五笔、模糊音、辅码 | 通用、模糊音、辅码 | | 2 | 候选 | 列表 | 每页几个、译文、繁体、emoji、排序、英文词 | 通用、高级、云服务 | | 3 | 中英文 | 中/英 | 英文模式、切换键、标点、状态条 | 通用、候选窗口 | | 4 | 外观 | 调色板 | 预览、主题、排布、文字、动效 | 候选窗口 | | 5 | 快捷键 | ⌘ | 全部可改的键 | 快捷键 | | 6 | 自定义短语 | 引号 | 短语表格 | 自定义短语(只 macOS 有) | | 7 | 词库 | 书 | 随包词库、导入的词库 | 词库 | | 8 | 云服务 | 云 | 云联想 | 云服务 | | 9 | 统计 | 柱状图 | 输入量、词汇 | 统计 | | 10 | 生词本 | 卡片 | 时间线、词表、导出 | 新加 | | 11 | 高级 | 齿轮 | 配置文件、日志、学习数据 | 高级、关于 | | 12 | 实验功能 | 烧瓶 | 下载、启用知意与含章·知微(macOS、Windows) | 新加 | | 13 | 关于 | 竹简 | 版本、更新、许可、数据来源、隐私 | 关于 | ## 各页 下表里「控件」一列:**开关**是 Switch,**分段**是 Segmented,**下拉**是 Select,**步进**是 Stepper,**勾选**是 Checkbox,**按键**是录键按钮(点一下再按键),**文本**是单行输入框。 「ⓘ」一列是悬停说明的全文,空着就是没有。 ### 1 输入 **方案** | 标题 | 控件 | 配置 | ⓘ | |---|---|---|---| | 拼音 | 下拉:全拼 / 小鹤双拼 / 自然码 / 微软双拼 / 搜狗双拼 / 智能ABC / 小浪双拼 / 首道双拼 / 拼音加加 / 紫光双拼 / 大千注音 / 关(只用形码) | `general.scheme` | 双拼与注音下 v、u、i 是按键,表达式和问字改用 Shift + V、Shift + U 进 | | 输入框显示按键 | 开关,只在双拼时出现 | `general.shuangpin_raw_preedit` | 输入框里显示敲的字母,候选窗口里照旧是全拼 | | 五笔(86 版) | 开关 | `general.wubi` | 跟拼音同时开就是混输,五笔打全的词排在前面 | **模糊音**:九个勾选,排成三列,拼音关着时变灰:z = zh、c = ch、s = sh、n = l、f = h、l = r、an = ang、en = eng、in = ing(`fuzzy.*`)。 **辅码** | 标题 | 控件 | 配置 | ⓘ | |---|---|---|---| | 启用 | 开关 | `aux_code.enabled` | 拼音打完敲触发键,再敲码筛选候选 | | 触发键 | 录键(单个不带修饰键的符号,按 `is_valid_aux_code_key` 校验) | `general.aux_code_key` | 微软、搜狗、紫光双拼里分号先当韵母 | | 候选上显示码 | 开关 | `general.aux_code_show` | | | 码删空后留在辅码 | 开关 | `general.aux_code_keep_empty` | | | 码表 | 列表:每行勾选 + 名称 + 条数 + 移除;底下「导入码表…」 | `aux_code.disabled` | | 辅码关着时下面几行变灰。码表列表单独一组「码表」:随包的(没有「移除」)、导入的,末尾一行导入。 **整个辅码只在 Windows 显示**:现在只有 Windows 的输入法加载码表,macOS、Linux 的输入法接上码表之前不显示,免得开了没用。 ### 2 候选 **显示** | 标题 | 控件 | 配置 | ⓘ | |---|---|---|---| | 每页候选数 | 步进 1–9 | `general.page_size` | | | 译文 | 下拉:英语 / 日语 / 西班牙语 / 越南语 / 不显示 | `general.learning_language` | 不显示时生词标记也关掉 | | 繁体 | 开关 | `general.traditional` | 只换字形,不换用语 | | emoji | 开关 | `general.emoji` | | **排序** | 标题 | 控件 | 配置 | ⓘ | |---|---|---|---| | 学习输入习惯 | 开关 | `general.learning` | 关掉后不再学,已学的照样用 | | 本地整句模型 | 开关 | `model.enabled` | 在本机给整句重新排序,不联网 | 「学习输入习惯」以前在「高级」,「本地整句模型」以前在「云服务」,可它们都在本机运行、改的都是候选顺序。 **英文词** | 标题 | 控件 | 配置 | ⓘ | |---|---|---|---| | 打拼音时也给英文词 | 开关 | `general.english_in_chinese` | hello、compa → company;关掉后句末英文词也一并停(`nanine` 不出「那nine」) | | 英文候选最多几个 | 步进 1–4,「打拼音时也给英文词」关着时变灰 | `general.english_max_in_chinese` | 1 时只留最靠前的一条 | | 英文词最高排到第几位 | 步进 1–9,「打拼音时也给英文词」关着时变灰 | `general.english_min_position` | 有中文候选时;1 为不限 | | 中文排在英文词前面 | 开关,「打拼音时也给英文词」关着时变灰 | `general.chinese_first` | | ### 3 中英文 **英文** | 标题 | 控件 | 配置 | ⓘ | 平台 | |---|---|---|---|---| | 英文模式 | 开关 | `general.english_mode` | 关掉后固定中文,要英文就切到别的输入法 | 全部 | | 切换键 | 三个勾选:单击 Shift / 单击 Ctrl / Ctrl + Alt + Space | `shortcut.switch_mode` | | Windows | | 英文模式也给候选 | 开关 | `general.english_candidates` | Tab 或方向键选词,不选时跟直接打字一样 | 全部 | | 只在写字的应用里给 | 勾选,挂在上一行下面 | `apps.english_candidates_on` | 浏览器、聊天、文档类应用;名单在配置文件里改 | 全部 | | Shift + 字母 | 分段:交给应用 / 进组句 | `general.shift_letter` | 进组句才能打出「C盘」 | 全部 | macOS 的切换键是 Caps Lock,由系统决定,所以不显示「切换键」这一行。 **标点** | 标题 | 控件 | 配置 | 平台 | |---|---|---|---| | 中文标点 | 分段:全角 / 半角 | `general.full_width_punctuation` | 全部 | | 英文标点 | 分段:半角 / 全角 | `general.english_full_width_punctuation` | Windows、Linux | | 标点先上屏候选 | 开关,ⓘ:nihao, 一气打完「你好,」 | `general.punct_commits` | 全部 | **状态条**(只有 Windows):悬浮状态条,开关,`status_bar.enabled`。以前放在「候选窗口」页,可它显示和切换的是中 / 英与标点。 ### 4 外观 就是已经做好的「候选窗口」页,换个名字,内容不变:预览,主题卡片,然后分外观、排布、文字、动效四组。改动只有两处: - 「拼音显示位置」挪到「排布」组(现在就在那里),ⓘ 写「终端里行内拼音显示不正常时选只在窗口」。 - 「悬浮状态条」移去「中英文」页。 ### 5 快捷键 **翻页与模式** | 标题 | 控件 | 配置 | |---|---|---| | 翻页键 | 分段:[ ] / , . / - = | `general.page_keys` | | 表达式 | 分段:v / u / i | `shortcut.expression` | | 问字 | 分段:v / u / i | `shortcut.question` | | ? 也进问字 | 开关 | `shortcut.question_mark` | **候选** | 标题 | 控件 | 配置 | |---|---|---| | 上屏第一个译词 | 录键(按住修饰键再按个数字,记修饰键) | `shortcut.translation` | | 上屏第二个译词 | 同上 | `shortcut.translation_second` | | 翻译选中文字 | 按键(组合键) | `shortcut.translate_selection` | | 按需 AI 联想(macOS、Windows) | 按键(组合键) | `shortcut.predict` | 页底一个「恢复默认」按钮,下面用小字列出组句中固定、不能改的键(空格、1–9、回车、Esc 等),这是全页唯一保留的一段说明文字。 模式键只有 v、u、i 三个能选,选了另一个正在用的字母就两个对调,不报错。 录键:点一下按钮进入录制(显示提示),按下的键能用就写进配置、结束录制;不能用(缺修饰键、跟另外两组修饰键撞了、 翻译键不是字母数字)就在这一行下面说原因、接着等;Esc 或点别处取消。修饰键只按着不算,要再按一个键。 字符键按不带修饰键时的字认(⌥1 记成 ⌥ 加 1),Windows 上 ⌘ 那一位记的是 Win 键。 Windows 旧设置程序里「翻译选中文字」只能改修饰键,这里整组都能录。「恢复默认」不动辅码触发键(它在「输入」页)。 ### 6 自定义短语 每条一行:开关(勾选,标签是输入码)、权重、内容的第一行(太长截断)、「编辑」;末尾一行「新增…」。 新增、编辑在对话框里:输入码、权重(输入框,1–999,新增时 10)、内容(多行,回车换行),「取消」「保存」,编辑时左边多一个「删除」(点两下)。 保存时整张表交给 `Config::set_custom_phrases` 校验(输入码 1–32 个小写字母、权重在范围内、同码同内容不能重复),不过就在卡片里说原因、草稿留着; 打开编辑后这条在别处被改了,保存不覆盖。Esc 或「取消」扔掉草稿,换页也关掉卡片。 表下面一行开关「也用系统的文本替换」(只 macOS,`general.system_text_replacements`)。 Windows 和 Linux 以前没有这一页,这次都有了。 ### 7 词库 **随包词库**:十一本领域词库排成两列勾选(`dictionaries.domains`),名字去掉统一的「青简领域词库:」前缀,后面跟条数。基础词库一直启用,不列。 **导入的词库**:每行勾选 + 名称 + 条数 + 许可证 + 移除(`dictionaries.disabled`);末尾一行「导入词库」,可多选文件。 转换在后台线程(大的 Rime 词库要几秒),每个文件一行结果显示在按钮下面;导入成功的同名词库若之前关过会重新打开。 源文件里有没写读音的词(只有词的 txt / 混了无读音行的 Rime 词库)时走 `import::import_dictionary`:读音按随包基础词库与领域词库派生, 结果行写明跳过了几条、前几个是哪些词;全带读音的 TSV / Rime 与 `.qj` 仍走普通导入,行为不变。 移除是挪进目录里的 `removed/`,不真删;输入法发现文件变了自己重载。清单进这一页时扫一次,导入、移除后重扫。 随包词库的位置:macOS 先找设置程序自己所在的 `.app`,再找装好的 `Qingjian.app/Contents/Resources/dicts`;其他平台在随包根的 `data/generated/dicts`。 ### 8 云服务 | 标题 | 控件 | 配置 | ⓘ | |---|---|---|---| | 启用 | 开关 | `predict.enabled` | 打字时把光标附近几十个字发给下面的服务,密码框里不发 | | 云端词 | 步进 0–4,0 显示「不要」 | `predict.slots` | 补进第一页末尾这几格 | | 自动联想(macOS、Windows) | 开关 | `predict.automatic` | 关闭后用按需联想快捷键请求 | | 停键等待(macOS、Windows) | 步进 100–10000 毫秒 | `predict.debounce_ms` | 自动联想关闭时变灰 | | 最短请求间隔(macOS、Windows) | 步进 1000–60000 毫秒 | `predict.min_interval_ms` | 自动和手动请求共用,缓存复用不联网 | | 整句补全 | 开关 | `predict.sentence` | 按 Tab 采用 | | 生词本整句翻译(macOS、Windows) | 开关 | `predict.vocabulary_translation` | 打完一句话后单独把这句发给服务,译文记进生词本的时间线;不发光标前后的文字 | | 接口地址 | 文本 | `predict.base_url` | | | 模型 | 文本 | `predict.model` | | | API 密钥 | 文本(密文),已设置时占位符写「已设置」 | `predict.api_key` | 只存在这台电脑的配置文件里,打包日志时会抹掉 | | 连接 | 「测试连接」按钮,结果显示在按钮下面 | | | 云联想关着时「云端词」「整句补全」变灰;地址、模型、密钥照样能填能测,先测通再打开。 输入框回车或离开时才存(离开包括换页),Esc 扔掉没存的改动;密钥框不显示已存的密钥。macOS 以前缺「整句补全」,这次补上。 **密钥存哪**:三个平台都写进配置文件的 `[predict] api_key`。macOS 偏好设置以前写在配置同目录的 `.env`, 可输入法重读 `.env` 时不覆盖已有的环境变量,换密钥要重启输入法才生效;写进配置文件热加载就生效,Windows 一直是这么存的。 旧的 `.env` 照样读(设置程序启动时也读进来,好显示「已设置」),配置文件里写了的优先。 ### 9 统计 顶上分段切「输入 / 云服务」两层(不做侧栏折叠:侧栏只为一页多一层展开状态不值);云服务层只在记用量的平台显示(`support` 表的 `ApiUsage`)。 两层结构一样,切换时布局不跳、只换数:今天 / 本周(周日起,同 GitHub 的提交日历)/ 本月 / 累计四张数字卡,近一年按天的格子图(一列一周、周日在上,颜色按当天量相对一年里最多那天开方后分四档), 过去 24 小时的柱状图(最右是现在这个钟点;比「今天」好:早上打开不是空的,跨零点的夜里也连着),再下面详情。图表是 bamboo-slip 的 `Heatmap` / `BarChart`,悬停浮出说明。 输入层详情:最多的一天、日均、速度(今天 / 平均 / 最快一天,只算键间停顿不超过 5 秒的时间)、首选率、一次打对(上屏前没删过的比例)、平均码长、跟一本书比;末尾是词汇一组 (见过、看熟、上屏过、直接打出过、本周新见一句话,有等级表时一张按级的表)。云服务层详情:最多的一天、请求次数一句、Token 表。 数据由输入法写在数据目录(`usage-hourly.tsv` 与只读的老 `usage.tsv`、`api-usage.json` 与 `api-usage-hourly.tsv`、`user-vocab.tsv`),设置程序进这一页时读一次,不写。 `--png` 截图在最后装一份样例数据(`offscreen/sample.rs`)拍这两层。 等级表的位置:macOS 在 `Qingjian.app/Contents/Resources/levels-<语言>.tsv`,其他平台在随包根的 `assets/levels/`。 ### 10 生词本 照 #570 引用的中英输入法的样子做:按语言分开记,顶上一行分段切「时间线 / 词表」,记过两门以上语言时旁边再一个分段切语言。 **时间线**(缺省):数据是输入法追加的 `vocab-log.tsv`,一次相遇一行。 「‹ 日期 ›」跳到前后有记录的日子;大字的相遇次数加「个词与你相遇」;一段话「其中 N 个是你今天第一次见到的生词。已连续输入 K 天」(第一次见到按 `user-vocab.tsv` 的首见日,连续按输入统计里有汉字的日子); 记忆色带:卡片里统计页同款的柱状图(`BarChart`),一个钟点一根,悬停浮出「16:00–17:00 · 12 个词」,今天的话现在这个钟点高亮;再下面「今天 N 个词」一组,每条左边圆点,说法大字(日语后面跟假名),中文在下,单个词再带例句,右边「下午 4:53」。每页 50 条。 读音这一列现在只有日语有,留给以后的英语音标;发音以后接系统朗读,不用另存。 **词表**:数据是 `user-vocab.tsv`。一句汇总,一组筛选(全部 / 生词 / 本周新见 / 认识了)、排序(最近 / 次数 / 字母)、搜索; 每行分层:译词大字加粗、后面一个带底色的小标签(生词用强调色、认识了灰的),下一行中文,再下一行「例句 …」,最后小字的次数与最近日期,右边「认识了」与「删除」。每页 50 个。 生词本之前记的英语词没有中文,按随包 `glossary-zh` 反查一个补上显示与导出,不写回。 两个视图末尾都是「导出与清空」:导出列出的词(CSV / Anki / 网页,按词表当前的筛选与搜索)、清空生词本(点两下,连同时间线)。 标认识、删除、清空当场写回;输入法也在写 `user-vocab.tsv`,两边写之前都先合并对方的改动(`VocabularyBook::refresh`),输入法每 60 秒落盘时看一眼;时间线输入法只追加,清空时设置程序整个重写。 学习语言关着时这一页只有一句说明。 没做成虚拟列表:整页在一个滚动区里,列表只是页里的一段,按可见范围只建几行要知道列表在页里的位置;按页翻已经够用。 ### 11 高级 | 组 | 项 | 控件 | |---|---|---| | 配置文件 | 在编辑器中打开 | 按钮 | | 配置文件 | 打开数据目录 | 按钮 | | 日志 | 详细日志(ⓘ:会记下敲的内容,排查完关掉) | 开关 `general.log_level` | | 日志 | 打开日志目录、打包到桌面 | 两个按钮排一行,做完的结果显示在按钮下面 | | 输入日志 | 记录输入日志(ⓘ:只存在这台电脑上) | 开关 `general.input_log` | | 输入日志 | 清空 | 按钮,第一下变成「再点一次清空」,第二下才清 | 「复制诊断信息」要输入法进程里的运行状态(当前方案、词库加载情况等),设置程序是另一个进程拿不到,先不放;以后由输入法把诊断信息写成文件再说。 ### 12 实验功能 页首一句说明:还在试用、本机运行不联网、同一时间只用一个。「候选」页的「本地整句模型」关着时再多一句提醒。 每个可下载的模型一组(知意在前,组标题带「推荐」),第一行是模型名,说明行写大小与一句介绍: | 状态 | 控件 | |---|---| | 没下载 | 「下载」按钮;另一个正在下时灰掉 | | 下载中 | 「取消」按钮;下面一行「正在下载 x / y MB」与进度条 | | 解压中 | 灰掉的「正在安装…」 | | 下载失败 | 「重试」按钮,下面写原因 | | 下好了 | 开关 `model.name`:开了写这个模型,关了写回 `tongbian`;下完自动打开 | 知意开着时多一行「档位」(分段:省电 / 均衡 / 准确,`model.zhiyi_tier`)。 下载同时问 Gitee 与 GitHub 要清单、先答的那边先下,某块失败换另一边(模型仓库 `qingjian-team/qingjian-models` 的 Release,标签写死在 `jobs/model_download/pack.rs`), 逐块核对 SHA-256 再核对整个压缩包,解到临时目录后换进用户目录的 `models/zhiyi/`(Windows 是 int8 ONNX 版 `models/zhiyi-onnx/`)、`models/hanzhang-zhiwei/`。关掉窗口下载就停,下次从头下。 Linux 的输入法还没接,support 表登记「待实现」,侧栏不出这一页。 ### 13 关于 - 顶部:logo、「青简」、版本与构建号、官网和 GitHub 链接。 - **更新**:自动检查(开关 `update.check`)、渠道(分段:正式版 / 测试版,`update.channel`)、「立即检查」(后台线程查完写 `update.json`,结果显示在按钮下面); 有新版时多一行「新版本 x.y.z」带「下载」按钮,下面列更新日志的前几条。自动检查仍由输入法每天做,设置程序打开时读它落盘的 `update.json`。 本地开发版(`-dev`)不查,测提示时用 `QINGJIAN_UPDATE_VERSION` 顶替版本号。 - **许可**:一行「GPL-3.0-or-later 自由软件」。 - **数据来源**:每个来源一行(词库、语言模型、释义表、emoji、英文词表、词汇等级、五笔码表、笔画码表),默认收起,点「展开」才列出来。 - **隐私**:保留现在那段话,这是关于页唯一一段长文字。 日志相关的按钮从这里移去「高级」。 ## 要新做的控件与功能 | 项 | 用在 | |---|---| | 悬停说明 ⓘ(tooltip) | 各页 | | 单行文本输入(含密文、占位符、IME 组字) | 云服务、短语编辑 | | 多行文本输入 | 短语内容 | | 录键按钮 | 快捷键、辅码触发键 | | 列表 / 表格(选中、双击、滚动) | 短语、词库、码表 | | 弹出卡片(模态) | 短语编辑、清空确认 | | 文件对话框(多选) | 导入词库、码表;三平台各接各的系统对话框 | | 折叠组 | 关于页数据来源 | | 统计用的数字卡 | 统计 | | 菜单的键盘导航 | 所有下拉 | ## 实施顺序 1. 只用现有控件的页:输入(触发键与码表列表除外)、候选、中英文、外观、高级、关于。引擎为此加了折行的段落。 2. 文本输入 + ⓘ:云服务。引擎为此加了输入框(输入法组字、选区、复制粘贴)、悬停说明的浮层、后台线程叫醒窗口。 3. 录键:快捷键、辅码触发键。引擎为此加了录键按钮,修饰键补上原样的 ⌃ / Ctrl 与 ⌘ / Win,字符键按不带修饰键时的字认。 4. 列表、文件对话框:词库、码表。文件选择用 rfd(与 Windows 旧设置程序同一个),清单是普通的分组行,没有另做列表控件。 5. 弹出卡片、多行文本:自定义短语。引擎为此加了对话框(盖住整窗的底加一张卡片)与多行输入框,列表仍用分组行,没做表格。 6. 统计。到这一步十一页都有内容了。 7. 搜索:搜设置行、分组标题、勾选项的标题,行里控件上的字(分段的各项、下拉框的全部选项、录好的键),以及 ⓘ 全文,按这个顺序排;记不清标题时搜选项里的字也能找到那一行。 输入时侧栏的导航换成结果,点结果(或回车取第一条)跳到那页,那一行滚进视野、铺一层底色再淡出,Esc 清空。 索引不手写:设置行这些控件建树时自己登记,开始搜时离屏把每页建一遍收来,所以按当前配置藏起来的项(别的平台的、依赖没开的)也搜不到。 8. 换掉旧设置程序:新程序装进安装包,输入法菜单「设置…」、Windows 状态条的 ⚙、开始菜单与 Linux 应用菜单的「青简设置」打开它。 - 安装位置:macOS 是 `Qingjian.app/Contents/Applications/QingjianSettings.app`(独立的 .app,自己的 Dock 图标与名字,`open` 打开;随包数据从外层 `Qingjian.app` 读); Windows 是与 Server 同目录的 `qingjian-settings.exe`(只开一个,第二次启动把已开的带到前台);Linux 是 `<前缀>/bin/qingjian-settings` 加一个 `.desktop`。 - 回退:旧的 macOS 偏好设置(菜单「旧版设置…」)与 Windows 设置程序(`qingjian-settings-legacy.exe`,任务栏「中 / 英」右键菜单「旧版设置…」与开始菜单「青简旧版设置」)保留作兜底;新版设置为主,缺省打开新版。 新程序打不开时用旧版;某项不生效靠测试拦:`config_keys` 离屏点遍每一页的控件,变了的键用输入法的 `Config` 读回核对。 - ⓘ 可点:悬停仍是短说明,末尾一行「点一下 ⓘ 打开文档」,点了打开官网文档对应的一段(`docs.rs` 一张表,按页与行标题对到 `docs/user/` 的某个标题, 锚点照官网的 `headingId` 生成)。测试核对表里每一段在文档里真有这个标题、每一行在那页上真有 ⓘ,文档改标题时测试报错。 - 用户文档的设置窗口总览(`docs/user/getting-started/settings.md`)按新的页与组重写,别处的「偏好设置 → 通用」这类指路改成新的页名。 - 「复制诊断信息」还没有:要输入法把运行状态写成文件,留到以后;反馈时先用「高级 → 打包到桌面」。 ## 待定 - macOS 输入法菜单里的「模糊音」子菜单保留:设置里它已经不是单独一页了,菜单里留着反倒是最快的入口。