metadata:
  app_name: Xime
  app_version: ">=2.4.2"
  platform: android
  config_version: 1
  generator: "Xime Config Generator" # 暂时无用
  modified_time: "2026-06-18"


# ── 26 键全键盘手势配置 ──
# 每个按键可定义 7 个手势：
#   tap:         点按
#   double_tap:  双击
#   long_press:  长按（{ display: bubble, values: [...] }，弹出气泡后滑动选择）
#   swipe_up:    上滑
#   swipe_down:  下滑
#   swipe_left / swipe_right: 左/右滑（配置任一后该键横向滑动由按键接管，
#                 不再移动光标；未配置的键横向滑动仍用于移动光标）
#
# 每个手势的值格式：
#   - 字符串 "a" → 按槽位默认动作（tap 为 send_rime：走按键路由进 rime，与手敲
#     该键一致；swipe/长按为 commit：输出 value 直接上屏），显示也是它
#   - { label, action, value }
#     label:  按键上显示的文字
#     action: send_rime（走按键路由进 rime 组合，tap 的默认，与手敲该键同一路由）,
#             commit（输出 value 直接上屏，swipe/长按的默认）,
#             command（内置命令，value 为命令名）,
#             select_all, copy, cut, paste, line_start, line_end, undo, none, repeat,
#             功能键：delete, enter, newline（固定换行，无视编辑器回车动作）, space, repeat_space（value 为次数，默认 5），
#                     clear_all, undo_clear, toggle_ascii, toggle_symbols, toggle_shift,
#                     voice（进入语音输入）, switch_route（value: emoji|symbol|clipboard）
#     command 可用命令：
#       clear_composition - 清空当前输入编码和候选词
#     value:  上屏时的输出文本（不指定则用 label）
#
# long_press 示例（弹出多个选项供滑动选择）：
#   long_press: { display: "bubble", values: [ { label: "大写", action: "commit", value: "A" }, { label: "Ä", action: "commit", value: "ä" } ] }
#   # 也支持字符串简写：
#   long_press: { display: "bubble", values: ["q", "Q"] }
#   # display 目前只支持 bubble（气泡弹出），key/both 会被按 bubble 处理
keyboard:
  # ── 键盘颜色配置（可选，不设置则使用内置默认值）──
  # keyboard_bg_color        - 键盘背景色（亮色）
  # keyboard_bg_color_dark   - 键盘背景色（暗色）
  # key_bg_color             - 按键背景色（亮色）
  # key_bg_color_dark        - 按键背景色（暗色）
  # special_key_bg_color     - 特殊按键背景色（亮色）
  # special_key_bg_color_dark- 特殊按键背景色（暗色）
  # candidate_bar_bg_color   - 候选栏背景色（亮色）
  # candidate_bar_bg_color_dark- 候选栏背景色（暗色）
  # key_text_color           - 按键文字颜色（亮色）
  # key_text_color_dark      - 按键文字颜色（暗色）
  # candidate_text_color     - 候选文字颜色（亮色）
  # candidate_text_color_dark- 候选文字颜色（暗色）
  colors:
    keyboard_bg_color: 0xE3E4E8
    keyboard_bg_color_dark: 0x202020
    key_bg_color: 0xFFFFFF
    key_bg_color_dark: 0x4A4A4A
    # special_key_bg_color: 0x9fef86 #不设置时默认取主题色
    # special_key_bg_color_dark: 0x4A4A4A #不设置时默认取主题色
    candidate_bar_bg_color: 0xE3E4E8
    candidate_bar_bg_color_dark: 0x202020
    key_text_color: 0x202124
    key_text_color_dark: 0xE8EAED
    candidate_text_color: 0x202124
    candidate_text_color_dark: 0xE8EAED
  
  # ── 按键配置（可选，不设置则使用默认值）──
  # corner_radius:      按键圆角半径（dp，默认 8）
  key:
    corner_radius: 8

  # ── 按键阴影（可选，不设置则使用默认值）──
  # enabled:            是否启用阴影
  # elevation:          阴影高度（dp，默认 1）
  shadow:
    enabled: true
    elevation: 1
  qwerty:
    button_layout: compact
    keys:
      # ── 第一行 ──
      # long_press 顺序：小写 → 大写 → 带变音符号的相似字母
      # swipe_down 显示对应的小鹤双拼韵母（action:none 仅显示不上屏）
      # display: bubble → 气泡显示；key → 显示在按键上（单行最多 4 个字符，
      # 含 \n 时按多行完整渲染，如下方韵母助记）
      q: { tap: "q", swipe_up: "1", swipe_down: { label: "iu", action: "none", display: "key" }, long_press: { display: "bubble", values: ["q", "Q"] } }
      w: { tap: "w", swipe_up: "2", swipe_down: { label: "ei", action: "none", display: "key" }, long_press: { display: "bubble", values: ["w", "W"] } }
      e: { tap: "e", swipe_up: "3", swipe_down: { label: "e", action: "none", display: "key" }, long_press: { display: "bubble", values: ["e", "E", "è", "é", "ê", "ë"] } }
      r: { tap: "r", swipe_up: "4", swipe_down: { label: "uan", action: "none", display: "key" }, long_press: { display: "bubble", values: ["r", "R"] } }
      t: { tap: "t", swipe_up: "5", swipe_down: { label: "ue\nve", action: "none", display: "key" }, long_press: { display: "bubble", values: ["t", "T"] } }
      y: { tap: "y", swipe_up: "6", swipe_down: { label: "un", action: "none", display: "key" }, long_press: { display: "bubble", values: ["y", "Y", "ÿ"] } }
      u: { tap: "u", swipe_up: "7", swipe_down: { label: "sh\nu", action: "none", display: "key" }, long_press: { display: "bubble", values: ["u", "U", "ù", "ú", "û", "ü"] } }
      i: { tap: "i", swipe_up: "8", swipe_down: { label: "ch\ni", action: "none", display: "key" }, long_press: { display: "bubble", values: ["i", "I", "ì", "í", "î", "ï"] } }
      o: { tap: "o", swipe_up: "9", swipe_down: { label: "o\nuo", action: "none", display: "key" }, long_press: { display: "bubble", values: ["o", "O", "ò", "ó", "ô", "õ", "ö", "ø"] } }
      p: { tap: "p", swipe_up: "0", swipe_down: { label: "ie", action: "none", display: "key" }, long_press: { display: "bubble", values: ["p", "P"] } }

      # ── 第二行 ──
      a: { tap: "a", swipe_up: { label: "～", value: "~" }, swipe_down: { label: "a", action: "none", display: "key" }, long_press: { display: "bubble", values: ["a", "A", "à", "á", "â", "ã", "ä", "å", "æ"] } }
      s: { tap: "s", swipe_up: { label: "／", value: "/" }, swipe_down: { label: "iong\nong", action: "none", display: "key" }, long_press: { display: "bubble", values: ["s", "S", "ß"] } }
      d: { tap: "d", swipe_up: { label: "：", value: ":" }, swipe_down: { label: "ai", action: "none", display: "key" }, long_press: { display: "bubble", values: ["d", "D"] } }
      f: { tap: "f", swipe_up: { label: "；", value: ";" }, swipe_down: { label: "en", action: "none", display: "key" }, long_press: { display: "bubble", values: ["f", "F"] } }
      g: { tap: "g", swipe_up: { label: "“", value: "“" }, swipe_down: { label: "eng", action: "none", display: "key" }, long_press: { display: "bubble", values: ["g", "G"] } }
      h: { tap: "h", swipe_up: { label: "”", value: "”" }, swipe_down: { label: "ang", action: "none", display: "key" }, long_press: { display: "bubble", values: ["h", "H"] } }
      j: { tap: "j", swipe_up: { label: "－", value: "-" }, swipe_down: { label: "an", action: "none", display: "key" }, long_press: { display: "bubble", values: ["j", "J"] } }
      k: { tap: "k", swipe_up: { label: "（", value: "(" }, swipe_down: { label: "ing\nuai", action: "none", display: "key" }, long_press: { display: "bubble", values: ["k", "K"] } }
      l: { tap: "l", swipe_up: { label: "）", value: ")" }, swipe_down: { label: "iang\nuang", action: "none", display: "key" }, long_press: { display: "bubble", values: ["l", "L"] } }

      # ── 第三行 ──
      z: { tap: "z", swipe_up: { label: "＊", value: "*" }, swipe_down: { label: "ou", action: "none", display: "key" }, long_press: { display: "bubble", values: [ "z","Z"] } }
      x: { tap: "x", swipe_up: { label: "＠", value: "@" }, swipe_down: { label: "ia\nua", action: "none", display: "key" }, long_press: { display: "bubble", values: ["x", "X"] } }
      c: { tap: "c", swipe_up: { label: "、", value: "、" }, swipe_down: { label: "ao", action: "none", display: "key" }, long_press: { display: "bubble", values: ["c", "C", "ç"] } }
      v: { tap: "v", swipe_up: { label: "？", value: "?" }, swipe_down: { label: "zh\nui\nv", action: "none", display: "key" }, long_press: { display: "bubble", values: ["v", "V"] } }
      b: { tap: "b", swipe_up: { label: "！", value: "!" }, swipe_down: { label: "in", action: "none", display: "key" }, long_press: { display: "bubble", values: ["b", "B"] } }
      n: { tap: "n", swipe_up: { label: "％", value: "%" }, swipe_down: { label: "iao", action: "none", display: "key" }, long_press: { display: "bubble", values: ["n", "N", "ñ"] } }
      m: { tap: "m", swipe_up: { label: "＃", value: "#" }, swipe_down: { label: "ian", action: "none", display: "key" }, long_press: { display: "bubble", values: ["m", "M"] } }
      #  逗号键，label 为中文显示，value 为英文显示+提交值
      comma: { tap: { label: "，", value: "," }, swipe_up: { label: "。", value: "." } , long_press: { display: "bubble", values: [ ",","."] }}
      # 中/英切换键，label 为按键显示文字
      earth: { tap: { label: "@language", action: "toggle_ascii" } }
   
  # 英文键盘布局
  qwerty_en:
    keys:
      # ── 第一行 ──
      q: { tap: "q", swipe_up: "1", long_press: { display: "bubble", values: ["q", "Q"] } }
      w: { tap: "w", swipe_up: "2", long_press: { display: "bubble", values: ["w", "W"] } }
      e: { tap: "e", swipe_up: "3", long_press: { display: "bubble", values: ["e", "E"] } }
      r: { tap: "r", swipe_up: "4", long_press: { display: "bubble", values: ["r", "R"] } }
      t: { tap: "t", swipe_up: "5", long_press: { display: "bubble", values: ["t", "T"] } }
      y: { tap: "y", swipe_up: "6", long_press: { display: "bubble", values: ["y", "Y"] } }
      u: { tap: "u", swipe_up: "7", long_press: { display: "bubble", values: ["u", "U"] } }
      i: { tap: "i", swipe_up: "8", long_press: { display: "bubble", values: ["i", "I"] } }
      o: { tap: "o", swipe_up: "9", long_press: { display: "bubble", values: ["o", "O"] } }
      p: { tap: "p", swipe_up: "0", long_press: { display: "bubble", values: ["p", "P"] } }
      # ── 第二行 ──
      a: { tap: "a", swipe_up: "~", long_press: { display: "bubble", values: ["a", "A"] } }
      s: { tap: "s", swipe_up: "/", long_press: { display: "bubble", values: ["s", "S"] } }
      d: { tap: "d", swipe_up: ":", long_press: { display: "bubble", values: ["d", "D"] } }
      f: { tap: "f", swipe_up: ";", long_press: { display: "bubble", values: ["f", "F"] } }
      g: { tap: "g", swipe_up: "\"", long_press: { display: "bubble", values: ["g", "G"] } }
      h: { tap: "h", swipe_up: "\"", long_press: { display: "bubble", values: ["h", "H"] } }
      j: { tap: "j", swipe_up: "-", long_press: { display: "bubble", values: ["j", "J"] } }
      k: { tap: "k", swipe_up: "(", long_press: { display: "bubble", values: ["k", "K"] } }
      l: { tap: "l", swipe_up: ")", long_press: { display: "bubble", values: ["l", "L"] } }

      # ── 第三行 ──
      z: { tap: "z", swipe_up: "*", long_press: { display: "bubble", values: ["z", "Z"] } }
      x: { tap: "x", swipe_up: "@", long_press: { display: "bubble", values: ["x", "X"] } }
      c: { tap: "c", swipe_up: "、", long_press: { display: "bubble", values: ["c", "C"] } }
      v: { tap: "v", swipe_up: "?", long_press: { display: "bubble", values: ["v", "V"] } }
      b: { tap: "b", swipe_up: "!", long_press: { display: "bubble", values: ["b", "B"] } }
      n: { tap: "n", swipe_up: "%", long_press: { display: "bubble", values: ["n", "N"] } }
      m: { tap: "m", swipe_up: "#", long_press: { display: "bubble", values: ["m", "M"] } }
      #  逗号键，label 为中文显示，value 为英文显示+提交值
      comma: { tap: { label: ",", value: "," }, swipe_up: { label: ".", value: "." } }
      # 中/英切换键，label 为按键显示文字
      earth: { tap: { label: "@language", action: "toggle_ascii" } }
