Skip to content

符号栏

符号栏(SymbolBar)是悬浮在键盘之上的一条快捷符号条,共 10 格。点按一格直接上屏符号,长按一格会在旁边浮出一排候选符号,小幅滑动即可选中。

它的用途是:让常用标点不必切到符号键盘就能输入,如 Markdown, LaTex 等等中的内容。

符号栏没有应用内的总开关,它由快捷指令 #toggleSymbolBar 控制:第一次执行打开,再执行一次关闭。

{
action: { shortcut: "#toggleSymbolBar" },
}

符号栏的开关状态不会被记住。键盘收起、切换到别的键盘、横竖屏切换之后,符号栏都是关闭的,需要重新触发一次 #toggleSymbolBar。

符号栏中的当前选中的符号类型是有记忆的:上次用 LaTeX,下次在打开还是 LaTeX。

┌───┬───┬───┬───┬───┬───┬───┬───┬───┬────┐
│ ✕ │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │ 8 │ MD │
└───┴───┴───┴───┴───┴───┴───┴───┴───┴────┘
↑ ╰────────── 8 个符号键 ──────────╯ ↑
关闭键 类型切换键
格子说明
关闭键红底白叉的圆形图标,点按即关闭符号栏。
8 个符号键可配置的内容键。固定行为:每个键含 1 个点按动作 + 4 个长按动作(最多4个)
类型切换键蓝底白字,显示当前符号类型名。点按弹出菜单选择类型

符号键的数量固定为 8,不能增减;

关闭键默认在第 1 格、类型切换键在第 10 格,可以在应用中用「关闭键在左侧」开关把两者互换。符号键的顺序始终是 1 到 8,不随之反转。

一个符号键上最多能看到 5 个字符:中心那个大字是点按会上屏的内容,四角的小字是长按能滑到的内容。

点一下符号键,中心(center)配置的 Action 立即执行。

长按一个符号键,会在相邻那一格的正下方浮出一排气泡。

符号栏左侧 4 个键会向右开,右侧 4 个键会向左开。

┌───┬───┬───┬───┬───┬───┬───┬───┬───┬────┐
│ ✕ │ , │ 。│ !│ ?│ 、│ … │ … │ … │ MD │
└───┴───┴───┴───┴───┴───┴───┴───┴───┴────┘
╰ 按住第 2 个符号键
┌────┬────┬────┬────┐
│ 左上│ 右上│ 右下│ 左下│ ← 开在右邻那一格的正下方
└────┴────┴────┴────┘
╰ 离手指最近的是第一格

注意:

  • 格数 = 该键非空角的数量(1~4 格),没配内容的角直接跳过,不会留下滑不中的空格。
  • 格子次序是绕着按键顺时针:左上 → 右上 → 右下 → 左下。向左开时气泡内部的次序会镜像,于是离手指最近的永远是第一格,滑得越远序号越大,栏的左右两半手感一致。
  • 手指不用移到气泡上。以气泡浮出瞬间的指位为原点,横向小幅位移就能换格。

选择与取消:

操作结果
滑到某一格后松手上屏该格的内容
上下滑动超过一个符号栏高度以上取消当前高亮选择内容
四角一个都没配的键不浮出气泡,长按退化成一次普通点按

设置界面上不支持全部的配置,可通过文件配置补充缺失的功能。

# ── 布局偏好 ──
closeButtonOnLeft: true
height: 44 # 可省略,默认 44
cellInsets: { left: 4, right: 4, top: 4, bottom: 4 } # 可省略,默认各边 4
backgroundColor: { light: "#EEEEEE", dark: "#222222" } # 可省略
longPressHintColor: "#888888" # 可省略
# ── 符号类型:既定义顺序,也定义显示名;首项为默认类型 ──
type:
- MD
- 数学
# ── 各类型的按键内容,每套固定 8 项 ──
panels:
MD:
- center:
action: { symbol: "," }
text: ","
topLeft:
action: { symbol: "、" }
topRight:
action: { symbol: "+" }
bottomLeft:
action: { symbol: ";" }
bottomRight:
action: { symbol: ":" }
# …共 8 项
数学:
# …共 8 项

顶层:

字段说明
closeButtonOnLefttrue 关闭键在第 1 格,false 在第 10 格
height符号栏总高,默认 44
cellInsets每格按键的四边内缩,默认各边 4
backgroundColor符号面板背景色
longPressHintColor按键右下角小三角的颜色,默认灰
type符号类型列表,既定义顺序也定义显示名
panels各类型的按键内容

按键级(6 个颜色字段):normalBackgroundColor、highlightBackgroundColor、gridBackgroundColor、gridSelectedBackgroundColor、gridNormalForegroundColor、gridHighlightForegroundColor。

位置级(center 与四角各 8 个字段,全部可选):

字段说明
action键盘动作,写法与皮肤、键盘菜单里的 action 一致
text显示文本。省略时取 action 的字面值
systemImageNameSF Symbol 名,优先于 text。渲染是三级回落:图标 → 文本 → action 字面值
showOnKey这个位置画不画在按键上,默认 true。仅四角有效, center 上会被忽略此属性
fontSize可用来覆盖默认字号
offset{ x, y },相对默认位置的偏移
normalColor常态前景色
highlightColor按键按下时的前景色(不是气泡里选中时的颜色)

type 列表里有、panels 里没有的类型会显示成 8 格全空白;panels 里有、type 列表里没有的内容会被忽略但保留——在应用里删掉类型不必同步删内容,留着可以恢复。

someColor: { light: "#RRGGBB", dark: "#RRGGBB" }

写 LaTeX 这类配置时,反斜杠一律写在单引号(‘这是单引内容’)里:YAML 的双引号风格(“这是双引内容”)认 \f、\t 这类转义,"\frac" 会被解析成「换页符 + rac」。

center:
action: { snippet: '\frac{{{cursor}}}{}' }
text: "a/b"
情况行为
配置文件不存在不显示符号栏,提示「符号栏未配置」
YAML 语法错误不显示符号栏,提示「符号栏配置无效」
type 列表为空同上
某类型在 panels 中缺失该类型显示为 8 格全空白
某类型不足 8 项缺的格子渲染成空白格
某个位置的动作解析失败该位置渲染成空白
height 非法或过大、内距为负该项回落默认值
色值非法(拼错、漏引号、3 位缩写)该档回落内建默认值
systemImageName 找不到图标回落 text,再回落 action 字面值
记录的类型名已不在 type 列表中回落到 type 列表第一项