3 个版本 (破坏性)
| 0.3.0 | 2023年6月25日 |
|---|---|
| 0.2.0 | 2023年5月11日 |
| 0.1.0 | 2023年4月30日 |
#1764 in 命令行工具
每月 22 次下载
495KB
12K SLoC
Bach
一个帮助你找到定义的 组合序列 的工具。
用法
提供一个作为位置参数的查询,然后将其与
- 指定
-n时产生的 Unicode 字符的名字进行匹配(不区分大小写)[^1] - 指定
-r时组合序列的结果字符串(区分大小写) - 指定
-c时序列定义后的注释(不区分大小写)
如果没有指定 -n、-r 或 -c,则匹配所有三个。
默认情况下,只显示以组合键开始的序列,使用 -a 标志可以显示所有序列(例如以死键开始的序列)。
解释
bach 可以以两种格式返回匹配的序列:作为它们出现在 .XCompose 文件中的样子(使用 -x 标志),或者其自己的“美观”格式(默认)。
.XCompose 格式在 Compose(5) 中描述。
美观格式对于每个序列:
<result> ↤ <events> ~ <info>
其中
- 结果 是该组合序列产生的字符串或 X11 键符。为了帮助区分键符,它们被设置为洋红色斜体。
- 事件 是所需的按键。这些大多数是自解释的,但以下符号用于特殊键
- 组合键本身是洋红色 ♦
- 键盘键是蓝色的
- 死键是一个带有组合标记的黄色虚圆圈,例如
◌̂表示XK_dead_circumflexα用于XK_dead_greekι用于XK_dead_iota¤用于XK_dead_currencya–e用于XK_dead_a–e
- 其他特殊符号为青色
␛对应于XK_Escape␈对应于XK_BackSpace␉对应于XK_Tab␍对应于XK_Return␠对应于XK_space⍽对应于XK_nobreakspace↑、↓、←、→分别对应于XK_Up、XK_Down、XK_Left和XK_Right。
- info 是组成文件中序列的行内注释,或在没有此类注释的情况下产生的字符名称[^1]。
个人组成文件
bach 将在 XCOMPOSEFILE 中查找您的个人组成文件,如果没有设置,则使用 ~/.XCompose。
全局组成文件
bach 需要定位 X11 的全局组成序列文件,如果它们在您的个人组成文件中引用(例如,通过 include "%L"),或者如果您没有此类文件。默认情况下,它将使用 /usr/share/X11/locale,但可以通过以下方式更改:
- 编译时设置
BACH_X11_SYSTEM_DIR_DEFAULT[^2] - 运行时设置
BACH_X11_SYSTEM_DIR - 使用
--x11-system-dir参数
按优先级顺序。
限制
bach将显示被后来定义的相同或更长的序列覆盖的序列- 八进制(
\124)和十六进制(\x4F)字符转义始终被解释为相应的 Unicode 字符。 - 您通常不应该在非
UTF-8区域设置中使用它 - 错误报告相当初步
序列兼容性
bach 理解 Compose(5) 中描述的完整 xcompose 文件格式,但是我在不同的程序和平台之间发现了对该完整规范的混合兼容性,特别是
- 修饰符通常被忽略,并且可能会使序列无效
- 八进制和十六进制字符转义并不总是受支持
- 在某些情况下,将键码作为序列的结果指定不被识别
许可证
Bach 在 BSD-2-Clause Plus Patent 许可证下分发。
[^1]: 仅适用于产生一个字符的序列
[^2]: 当使用 nix build 构建时,这将设置为合适的值
依赖关系
~4–12MB
~106K SLoC