Notcurses 是一个用于在现代终端模拟器上构建复杂、生动的文本用户界面 (TUI) 的库。最大限度地支持鲜艳的颜色、多媒体、线程和 Unicode。
用 Notcurses 可以做一些用 NCurses 根本做不到的事情。此外,它还很快。它不是一个源代码兼容的 X/Open Curses 实现,也不是现有系统上 NCurses 的替代品。
Notcurses 是用 C 语言编写的,带有 C++-safe headers。Rust、C++ 和 Python wrappers 都可以使用。
Notcurses 放弃了作为单一 UNIX 规范的一部分而捆绑的 X/Open Curses API。因此,Notcurses 并不是一个直接的 Curses 替代品。只要有可能,Notcurses 就会使用 NCurses 提供的 Terminfo 库,并从其可移植性和彻底性中获益良多。
Notcurses 为工作站、手机、笔记本电脑和平板电脑上的交互式用户开辟了高级功能,可能以牺牲某些工业和零售终端为代价。从根本上说,Curses 假定最低限度,并允许你(通过努力)提高;而 Notcurses 假定最大限度,并在必要时(自己)降低。后一种方法可能会在一些旧硬件上发生故障,但前一种方法的结果是新软件看起来像旧硬件。
特性:
- 终端功能的高级和广泛的运行时查询
- 在可用的情况下可选使用“alternate screen”(enter_ca_mode / exit_ca_mode terminfo 功能)
-
所有 API 均原生使用 24 位 8bpc RGB 颜色
- 颜色被量化为索引调色板终端
-
透明/半透明加动态高对比度文字
- 较低的平面会影响较高的半透明平面的颜色
- Sprites
-
完全支持 Unicode,包括宽字形和双向文本
- 组合键(数字键盘等)映射到 Private Supplementary Area B
- 通过 ffmpeg 或 OpenImageIO 支持图像/视频
- 子区域淡入/淡出,文本脉冲
- 用于为几何对象着色的 Linear interpolation
- 多单元和像素 blitters,旋转和任意缩放