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_currency
a–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