Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save medicalwei/9871994 to your computer and use it in GitHub Desktop.
Save medicalwei/9871994 to your computer and use it in GitHub Desktop.
# Rime schema
# encoding: utf-8
schema:
schema_id: bopomofo_foolproof
name: 注音完整輸入
version: "1.0"
author:
- 佛振 <chen.sst@gmail.com>
- 魏藥 <mwei@lxde.org>
description: |
注音符號輸入,採用「大千式」鍵盤排列。
本方案採用「無模式」設計,以大寫字母鍵或上下方向鍵、回車鍵選詞;
空格鍵輸入第一聲,標記爲「ˉ」。也可省略聲調或韻母部份。
請配合 librime>=0.9.8 使用。
dependencies:
- cangjie5
switches:
- name: ascii_mode
reset: 0
states: [ 中文, 西文 ]
- name: full_shape
states: [ 半角, 全角 ]
- name: simplification
states: [ 漢字, 汉字 ]
engine:
processors:
- ascii_composer
- recognizer
- key_binder
- speller
- punctuator
- selector
- navigator
- fluency_editor
segmentors:
- ascii_segmentor
- matcher
- abc_segmentor
- punct_segmentor
- fallback_segmentor
translators:
- punct_translator
- r10n_translator
- reverse_lookup_translator
filters:
- simplifier
- uniquifier
menu:
alternative_select_keys: "ABCDEFGHIJ"
speller:
alphabet: '1qaz2wsxedcrfv5tgbyhnujm8ik,9ol.0p;/- 6347'
initials: '1qaz2wsxedcrfv5tgbyhnujm8ik,9ol.0p;/-'
finals: " 6347"
delimiter: "'"
use_space: true
algebra:
- erase/^xx$/
- xform/^m(\d)$/mu$1/ # 呣
- xform/^r5$/er5/ # 〜兒
- xform/iu/iou/
- xform/ui/uei/
- xform/ong/ung/
- xform/^yi?/i/
- xform/^wu?/u/
- xform/iu/v/
- xform/^([jqx])u/$1v/
- xform/([iuv])n/$1en/
- xform/^zhi?/Z/
- xform/^chi?/C/
- xform/^shi?/S/
- xform/^([zcsr])i/$1/
- xform/ai/A/
- xform/ei/I/
- xform/ao/O/
- xform/ou/U/
- xform/ang/K/
- xform/eng/G/
- xform/an/M/
- xform/en/N/
- xform/er/R/
- xform/eh/E/
- xform/([iv])e/$1E/
- derive/([bpmfdtnlgkhjqxZCSrzcs])([aoeEAIOUMNKGR])([iuv])/$1$3$2/
- derive/([iuv])([bpmfdtnlgkhjqxZCSrzcs])([aoeEAIOUMNKGR])/$2$1$3/
- derive/([aoeEAIOUMNKGR])([bpmfdtnlgkhjqxZCSrzcs])([iuv])/$2$3$1/
- derive/([iuv])([aoeEAIOUMNKGR])([bpmfdtnlgkhjqxZCSrzcs])/$3$1$2/
- derive/([aoeEAIOUMNKGR])([iuv])([bpmfdtnlgkhjqxZCSrzcs])/$3$2$1/
- derive/([bpmfdtnlgkhjqxZCSrzcs])([iuv])/$2$1/
- derive/([iuv])([aoeEAIOUMNKGR])/$2$1/
- derive/([bpmfdtnlgkhjqxZCSrzcs])([aoeEAIOUMNKGR])/$2$1/
- 'xlit|bpmfdtnlgkhjqxZCSrzcsiuvaoeEAIOUMNKGR12345|1qaz2wsxedcrfv5tgbyhnujm8ik,9ol.0p;/- 6347|'
translator:
dictionary: terra_pinyin
prism: bopomofo_foolproof
preedit_format:
- xform|([1qaz2wsxedcrfv5tgbyhn])([8ik\,9ol\.0p\;\/\-])([ujm])|$1$3$2|
- xform|([ujm])([8ik\,9ol\.0p\;\/\-])([1qaz2wsxedcrfv5tgbyhn])|$2$1$3|
- xform|([8ik\,9ol\.0p\;\/\-])([1qaz2wsxedcrfv5tgbyhn])([ujm])|$2$3$1|
- xform|([ujm])([8ik\,9ol\.0p\;\/\-])([1qaz2wsxedcrfv5tgbyhn])|$3$1$2|
- xform|([8ik\,9ol\.0p\;\/\-])([ujm])([1qaz2wsxedcrfv5tgbyhn])|$3$2$1|
- xform/([ujm])([1qaz2wsxedcrfv5tgbyhn])/$2$1/
- xform|([8ik\,9ol\.0p\;\/\-])([ujm])|$2$1|
- xform|([8ik\,9ol\.0p\;\/\-])([1qaz2wsxedcrfv5tgbyhn])|$2$1|
- "xlit|1qaz2wsxedcrfv5tgbyhnujm8ik,9ol.0p;/- 6347'|ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄧㄨㄩㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦˉˊˇˋ˙ |"
reverse_lookup:
dictionary: cangjie5
enable_completion: true
prefix: "`"
suffix: "'"
tips: 〔倉頡〕
preedit_format:
- "xlit|abcdefghijklmnopqrstuvwxyz|日月金木水火土竹戈十大中一弓人心手口尸廿山女田難卜符|"
comment_format:
- xform/e?r5$/er5/
- xform/([jqx])u/$1v/
- xform/yu/v/
- xform/yi?/i/
- xform/wu?/u/
- xform/iu/iou/
- xform/ui/uei/
- xform/ong/ung/
- xform/([iu])n/$1en/
- xform/zh/Z/
- xform/ch/C/
- xform/sh/S/
- xform/ai/A/
- xform/ei/I/
- xform/ao/O/
- xform/ou/U/
- xform/ang/K/
- xform/eng/G/
- xform/an/M/
- xform/en/N/
- xform/er/R/
- xform/eh/E/
- xform/([iv])e/$1E/
- xform/1//
- 'xlit|bpmfdtnlgkhjqxZCSrzcsiuvaoeEAIOUMNKGR2345|ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄧㄨㄩㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦˊˇˋ˙|'
punctuator:
full_shape:
" " : { commit: " " }
"<" : { commit: "," }
">" : { commit: "。" }
"?" : [ ?, /, "/", ÷ ]
":" : [ :, ; ]
"'" : { pair: [ "‘", "’" ] }
"\"" : { pair: [ "“", "”" ] }
"\\" : [ 、, \, "\\" ]
"|" : [ ・, |, "|", "§", "¦" ]
"`" : [ `, "`" ]
"~" : [ 〜, "~", ~, 〰 ]
"!" : { commit: ! }
"@" : [ @, "@", ☯ ]
"#" : [ #, "#", ⌘ ]
"%" : [ %, "%", "°", "℃" ]
"$" : [ ¥, "$", "€", "£", "¥", "¢", "¤" ]
"^" : { commit: …… }
"&" : [ &, "&" ]
"*" : [ *, "*", ・, ×, ※, ❂, · ]
"(" : (
")" : )
"_" : [ ——, -, "-" ]
"+" : [ +, "+" ]
"=" : [ =, "=" ]
"[" : [ 「, 【, 《, 〔, [ ]
"]" : [ 」, 】, 》, 〕, ] ]
"{" : [ 『, 〖, 〈, { ]
"}" : [ 』, 〗, 〉, } ]
half_shape:
"<" : { commit: "," }
">" : { commit: "。" }
"?" : [ ?, /, "/", ÷ ]
":" : [ :, ; ]
"'" : { pair: [ "‘", "’" ] }
"\"" : { pair: [ "“", "”" ] }
"\\" : [ 、, "\\", \ ]
"|" : [ ・, "|", |, "§", "¦" ]
"`" : "`"
"~" : "~"
"!" : { commit: ! }
"@" : "@"
"#" : "#"
"%" : [ "%", %, "°", "℃" ]
"$" : [ ¥, "$", "€", "£", "¥", "¢", "¤" ]
"^" : { commit: …… }
"&" : "&"
"*" : [ "*", *, ・, ×, ※, ❂, · ]
"(" : (
")" : )
"_" : [ ——, -, "-" ]
"+" : "+"
"=" : "="
"[" : [ 「, 【, 《, 〔, [ ]
"]" : [ 」, 】, 》, 〕, ] ]
"{" : [ 『, 〖, 〈, { ]
"}" : [ 』, 〗, 〉, } ]
key_binder:
bindings:
# Emacs style
- { when: composing, accept: Control+p, send: Up }
- { when: composing, accept: Control+n, send: Down }
- { when: composing, accept: Control+b, send: Left }
- { when: composing, accept: Control+f, send: Right }
- { when: composing, accept: Control+a, send: Home }
- { when: composing, accept: Control+e, send: End }
- { when: composing, accept: Control+d, send: Delete }
- { when: composing, accept: Control+k, send: Shift+Delete }
- { when: composing, accept: Control+g, send: Escape }
- { when: composing, accept: Alt+v, send: Page_Up }
- { when: composing, accept: Control+v, send: Page_Down }
# commonly used paging keys
- { when: composing, accept: ISO_Left_Tab, send: Page_Up }
- { when: composing, accept: Shift+Tab, send: Page_Up }
- { when: composing, accept: Tab, send: Page_Down }
- { when: paging, accept: minus, send: Page_Up }
- { when: has_menu, accept: equal, send: Page_Down }
recognizer:
patterns:
email: "^[a-z][-_.0-9a-z]*@.*$"
uppercase: "^[A-Z][-_+.'0-9A-Za-z]*$"
url: "^(www[.]|https?:|ftp:|mailto:).*$"
reverse_lookup: "`[a-z]*'?$"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment