# Rime default settings
# encoding: utf-8

config_version: "0.38"

schema_list:
  - schema: flypy

switcher:
  caption: 〔方案选单〕
  hotkeys:
    - Control+grave
    - Control+Shift+grave
    - F4
  save_options:
    - full_shape
    - ascii_punct
    - simplification
  fold_options: true
  abbreviate_options: true
  #option_list_separator: '／'

menu:
  page_size: 5

punctuator:
  full_shape: # replace full_shape with half_shape
    ",": { commit: ， }
    ".": { commit: 。 }
    "<": [《, 〈, «, ‹]
    ">": [》, 〉, », ›]
    "/": { commit: 、 }
    "?": { commit: ？ }
    ";": { commit: ； }
    ":": { commit: ： }
    "'": { pair: ["‘", "’"] }
    '"': { pair: ["“", "”"] }
    '\': { commit: 、 }
    "|": "|"
    "`": "`"
    "~": { commit: ～ }
    "!": { commit: ！ }
    "@": "@"
    "#": "#"
    "%": { commit: "%" }
    "$": { commit: "$" }
    "^": { commit: …… }
    "&": "&"
    "*": { commit: "*" }
    "(": （
    ")": ）
    "-": "-"
    "_": ——
    "+": "+"
    "=": "="
    "[": [「, 【, 〔, ［]
    "]": [」, 】, 〕, ］]
    "{": [『, 〖, ｛]
    "}": [』, 〗, ｝]

  half_shape:
    ",": { commit: ， }
    ".": { commit: 。 }
    "<": [《, 〈, «, ‹]
    ">": [》, 〉, », ›]
    "/": { commit: 、 }
    "?": { commit: ？ }
    ";": { commit: ； }
    ":": { commit: ： }
    "'": { pair: ["‘", "’"] }
    '"': { pair: ["“", "”"] }
    '\': { commit: 、 }
    "|": "|"
    "`": "`"
    "~": { commit: ～ }
    "!": { commit: ！ }
    "@": "@"
    "#": "#"
    "%": { commit: "%" }
    "$": { commit: "$" }
    "^": { 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+h, send: BackSpace }
    - { when: composing, accept: Control+g, send: Escape }
    - { when: composing, accept: Control+bracketleft, send: Escape }
    - { when: composing, accept: Alt+v, send: Page_Up }
    - { when: composing, accept: Control+v, send: Page_Down }
    # move by word
    - { when: composing, accept: ISO_Left_Tab, send: Shift+Left }
    - { when: composing, accept: Shift+Tab, send: Shift+Left }
    - { when: composing, accept: Tab, send: Shift+Right }
    # flip page
    - { when: has_menu, accept: minus, send: Page_Up }
    - { when: has_menu, accept: equal, send: Page_Down }
    - { when: paging, accept: comma, send: Page_Up }
    - { when: has_menu, accept: period, send: Page_Down }
    # hotkey switch
    - { when: always, accept: Control+Shift+1, select: .next }
    - { when: always, accept: Control+Shift+2, toggle: ascii_mode }
    - { when: always, accept: Control+Shift+3, toggle: full_shape }
    - { when: always, accept: Control+Shift+4, toggle: simplification }
    - { when: always, accept: Control+Shift+5, toggle: extended_charset }
    - { when: always, accept: Control+Shift+exclam, select: .next }
    - { when: always, accept: Control+Shift+at, toggle: ascii_mode }
    - { when: always, accept: Control+Shift+numbersign, toggle: full_shape }
    - { when: always, accept: Control+Shift+dollar, toggle: simplification }
    - { when: always, accept: Control+Shift+percent, toggle: extended_charset }
    - { when: always, accept: Shift+space, toggle: full_shape }
    - { when: always, accept: Control+period, toggle: ascii_punct }

recognizer:
  patterns:
    uppercase: "[A-Z][-_+.'0-9A-Za-z]*$"
    reverse_lookup: "[a-z`]*`+[a-z`]*"
    punct: ""

ascii_composer:
  good_old_caps_lock: true
  switch_key:
    Shift_L: inline_ascii
    Shift_R: commit_text
    Control_L: noop
    Control_R: noop
    Caps_Lock: clear
    Eisu_toggle: clear
