diff --git a/default.yaml b/default.yaml index d70217c..13f7e02 100644 --- a/default.yaml +++ b/default.yaml @@ -15,6 +15,7 @@ schema_list: - schema: double_pinyin - schema: double_pinyin_flypy - schema: double_pinyin_mspy + - schema: double_pinyin_ziguang # 菜单 diff --git a/double_pinyin_ziguang.schema.yaml b/double_pinyin_ziguang.schema.yaml new file mode 100644 index 0000000..8063578 --- /dev/null +++ b/double_pinyin_ziguang.schema.yaml @@ -0,0 +1,264 @@ +# Rime schema +# encoding: utf-8 + + +# 复制自 rime_ice.schema.yaml ,适配了双拼。 +# 双拼键位映射复制自 https://github.com/rime/rime-double-pinyin +# 双拼之间主要就是 speller/algebra 和 translator/preedit_format 这里有区别。 +# +# 全拼的自定义文本和双拼有些冲突,改成了 custom_phrase_double ,需要创建 custom_phrase_double.txt 文件。 +# +# 中英混输词库 en_dicts/cn_en.dict.yaml 可以删除或修改,里面是写死了的全拼+英文编码。 + + +# 方案说明 +schema: + schema_id: double_pinyin_ziguang + name: 紫光双拼 + version: "1" + author: + - Dvel + description: | + 雾凇拼音 - 紫光双拼 + https://github.com/iDvel/rime-ice + dependencies: + - melt_eng # 英文输入,作为次翻译器挂载到拼音方案 + - liangfen # 两分拼字,作为反查挂载到拼音方案 + + +# 开关 +# 鼠须管 0.16 后,用快捷键切换时的提示文字由 states 定义 +# states: 方案选单显示的名称。可以注释掉,仍可以通过快捷键切换。 +# reset: 默认状态。 注释掉后,切换窗口时不会重置到默认状态。 +switches: + - name: ascii_mode + states: [ 中, A ] + reset: 0 + - name: ascii_punct # 中英标点 + states: [ ¥, $ ] + reset: 0 + - name: traditionalization + states: [ 简, 繁 ] + reset: 0 + - name: emoji + states: [ 💀, 😄 ] + reset: 1 + - name: full_shape + states: [ 半角, 全角 ] + reset: 0 + + +# 输入引擎 +engine: + processors: + - lua_processor@select_character # 以词定字 + - ascii_composer + - recognizer + - key_binder + - speller + - punctuator + - selector + - navigator + - express_editor + segmentors: + - ascii_segmentor + - matcher + - abc_segmentor + - punct_segmentor + - fallback_segmentor + translators: + - punct_translator + - script_translator + - lua_translator@date_translator # 时间、日期、星期 + - table_translator@custom_phrase # 自定义短语 custom_phrase_double.txt + - table_translator@melt_eng # 英文输入 + - reverse_lookup_translator@liangfen # 反查,两分拼字 + - lua_translator@unicode # Unicode + filters: + - simplifier@emoji # Emoji + - simplifier@traditionalize # 简繁切换 + - lua_filter@reduce_english_filter # 降低部分英语单词在候选项的位置 + - uniquifier # 去重 + + +# Lua 配置: 日期、时间、星期、ISO 8601、时间戳的触发关键字 +date_translator: + date: date # 日期: 2022-11-29 + time: time # 时间: 18:13 + week: week # 星期: 星期二 + datetime: datetime # ISO 8601: 2022-11-29T18:13:11+08:00 + timestamp: timestamp # 时间戳: 1669716794 + + +# Lua 配置: 降低部分英语单词在候选项的位置 +# 详细介绍 https://dvel.me/posts/make-rime-en-better/#短单词置顶的问题 +# 正常情况: 输入 rug 得到 「1.rug 2.如果 …… 」 +# 降低之后: 输入 rug 得到 「1.如果 2.rug …… 」 +reduce_english_filter: + # 降低到第 idx 个位置 + idx: 2 + # 要降低的单词,匹配的是输入码,即全小写。 + words: [nav, + rug, bus, ship, laos, bail, bam, bans, bib, bos, chic, chit, dab, dag, + dal, dit, dub, dug, fab, gam, ger, gus, hem, hep, hud, kat, lam, lax, lex, lug, + lux, moc, mos, mot, mum, nad, nay, nib, nip, pak, pap, pax, rig, rum, sac, sal, + sax, sec, shin, sis, ska, slang, sus, tad, taj, tac, tic, yep, yum, fax, cain, + key, mob, buy, dam, wap, yes, but, put] + + +# 引入八股文 +grammar: + language: zh-hans-t-essay-bgw + + +# 主翻译器,拼音 +translator: + dictionary: rime_ice # 挂载词库 rime_ice.dict.yaml + prism: double_pinyin_ziguang # 多方案共用一个词库时,为避免冲突,需要用 prism 指定一个名字。 + contextual_suggestions: true # 开启八股文 + initial_quality: 1.2 # 拼音的权重应该比英文大 + preedit_format: # preedit_format 影响到输入框的显示和“Shift+回车”上屏的字符 + - xform/o(\w)/0$1/ # 零聲母先改爲0,以方便後面的轉換 + - xform/([jqxy])n/$1ue/ # 提前轉換雙拼碼 n 和 g,因爲轉換後的拼音裏就快要出現這兩個字母了,那時將難以分辨出雙拼碼 + - xform/([nl])n/$1ve/ + - xform/([dtgkhzcsuai])n/$1ui/ + - xform/([nljqx])g/$1iang/ + - xform/([gkhuai])g/$1uang/ + - xform/(\w)w/$1en/ + - xform/(\w)r/$1an/ + - xform/(\w)t/$1eng/ + - xform/([jqxylmnbp])y/$1in/ + - xform/([zcsuaigkh])y/$1uai/ + - xform/([dtnlgkhrzcsuai])o/$1uo/ + - xform/(\w)q/$1ao/ + - xform/(\w)p/$1ai/ + - xform/(\w)s/$1ang/ + - xform/(\w)d/$1ie/ + - xform/(\w)f/$1ian/ + - xform/([jqx])h/$1iong/ + - xform/([dtnlgkhrzcsuai])h/$1ong/ + - xform/0j/0er/ + - xform/([dnlmjqx])j/$1iu/ + - xform/(\w)k/$1ei/ + - xform/(\w)l/$1uan/ + - xform/(\w)z/$1ou/ + - xform/([jqxl])x/$1ia/ + - xform/([gkhuai])x/$1ua/ + - xform/(\w);/$1ing/ + - xform/(\w)b/$1iao/ + - xform/(\w)m/$1un/ + - "xform/(^|[ '])u/$1zh/" # 復原聲母,音節開始處的雙拼字母a改寫爲zh;其他位置的才真正是a + - "xform/(^|[ '])a/$1ch/" + - "xform/(^|[ '])i/$1sh/" + - xform/0(\w)/$1/ # 好了,現在可以把零聲母拿掉啦 + - xform/([nljqxy])v/$1ü/ # 這樣纔是漢語拼音 :-) + + +# 次翻译器,英文 +melt_eng: + dictionary: melt_eng # 挂载词库 melt_eng.dict.yaml + enable_sentence: false # 禁止造句 + enable_user_dict: false # 禁用用户词典 + initial_quality: 1.1 # 初始权重 + comment_format: # 自定义提示码 + - xform/.*// # 清空提示码 + + +# 反查:两分(拼字) +liangfen: + dictionary: liangfen # 挂载两分词典 liangfen.dict.yaml + prefix: "L" # 以 L 开头来反查 + enable_completion: true # 补全提示 + # tips: 〔两分〕 # 反查时显示的文字,建议注释掉,否则很多 L 开头的英文单词也会显示这个 + + +# 自定义短语 +custom_phrase: + dictionary: "" + user_dict: custom_phrase_double # 需要手动创建 custom_phrase_double.txt 文件 + db_class: stabledb + enable_completion: false # 补全提示 + enable_sentence: false # 禁止造句 + initial_quality: 99 # custom_phrase 的权重应该比 pinyin 和 melt_eng 大 + + +# Emoji +emoji: + opencc_config: emoji.json + option_name: emoji + + +# 简繁切换 +traditionalize: + option_name: traditionalization + opencc_config: s2t.json # s2t.json | s2hk.json | s2tw.json | s2twp.json + tips: none # 转换提示: all 都显示 | char 仅单字显示 | none 不显示。 + excluded_types: [ reverse_lookup ] # 不转换反查(两分拼字)的内容 + + +# 标点符号 +# punctuator 下面有三个子项: +# full_shape 全角标点映射 +# half_shape 半角标点映射 +# symbols Rime 的预设配置是以 '/' 前缀开头输出一系列字符,自定义的 symbols_caps_v.yaml 修改成了 'V' 开头。 +punctuator: + full_shape: + __include: default:/punctuator/full_shape # 从 default.yaml 导入配置 + half_shape: + __include: default:/punctuator/half_shape # 从 default.yaml 导入配置 + symbols: + __include: symbols_caps_v:/symbols # 从 symbols_caps_v.yaml 导入配置 + + +# 处理符合特定规则的输入码,如网址、反查 +recognizer: + import_preset: default # 从 default.yaml 继承通用的 + patterns: # 再增加方案专有的: + punct: "^V([0-9]|10|[A-Za-z]+)$" # 响应 symbols_caps_v.yaml 的 symbols + reverse_lookup: "^L[a-z]+$" # 响应两分拼字的反查 + unicode: "^U[a-f0-9]+" # 响应 Unicode + + +# 从 default 继承快捷键 +key_binder: + import_preset: default # 从 default.yaml 继承通用的 + # bindings: # 也可以再增加方案专有的 + + +# 拼写设定 +speller: + # 如果不想让什么标点直接上屏,可以加在 alphabet,或者编辑标点符号为两个及以上的映射 + alphabet: zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA; + delimiter: " '" # 第一位<空格>是拼音之间的分隔符;第二位<'>表示可以手动输入单引号来分割拼音。 + algebra: + - erase/^xx$/ + - derive/^([jqxy])u$/$1v/ + - xform/^([aoe].*)$/O$1/ # 添上固定的零聲母o,先標記爲大寫O + - xform/en$/W/ + - xform/eng$/T/ + - xform/in$|uai$/Y/ + - xform/^zh/U/ + - xform/^sh/I/ + - xform/uo$/O/ + - xform/ai$/P/ + - xform/^ch/A/ + - xform/[iu]ang$/G/ + - xform/ang$/S/ # ang should be placed after iang/uang + - xform/ie$/D/ + - xform/ian$/F/ + - xform/i?ong$/H/ + - xform/er$|iu$/J/ + - xform/ei$/K/ + - xform/uan$/L/ + - xform/ing$/;/ + - xform/ou$/Z/ + - xform/[iu]a$/X/ + - xform/iao$/B/ + - xform/ue$|ui$|ve$/N/ + - xform/un$/M/ + - xform/ao$/Q/ # ao should be placed after iao + - xform/an$/R/ # an should be placed after uan/ian + - xlit/WTYUIOPAGSDFHJKLZXBNMQR/wtyuiopagsdfhjklzxbnmqr/ + - abbrev/^(.).+$/$1/ # 首字母简拼 + # 可输入大写字母。因为上面的双拼拼写规则用掉了大写字母。做了 xlit 转写,同时适配全拼和双拼。 + - xlit/āḃçďēḟḡĥīĵḱĺḿńōṕɋŕśťūṽẃẋȳź/ABCDEFGHIJKLMNOPQRSTUVWXYZ/ diff --git a/others/recipes/full.recipe.yaml b/others/recipes/full.recipe.yaml index b9dd730..7d17965 100644 --- a/others/recipes/full.recipe.yaml +++ b/others/recipes/full.recipe.yaml @@ -25,6 +25,7 @@ install_files: >- double_pinyin.schema.yaml double_pinyin_mspy.schema.yaml double_pinyin_flypy.schema.yaml + double_pinyin_ziguang.schema.yaml symbols_v.yaml symbols_caps_v.yaml liangfen.schema.yaml