3 个版本

使用旧的 Rust 2015

0.42.2 2017年1月22日
0.42.1 2015年5月26日
0.42.0 2015年5月8日

#11 in #virtual-terminal

GPL-3.0 许可协议

25KB
563

VTCOL

改变虚拟 Linux 控制的配色方案。受 setcolors 工具的启发。

用法

vtcol 知道两种加载配色方案的方式:要么选择预定义方案的设置,要么从定义文件中加载。后者接受 setcolors 支持的格式。请注意,并没有花太多精力确保兼容性,因此可能因系统而异。检查 vtcol 树中的子目录./schemes以获取示例。

预定义了三种配色方案

  • defaultLinux 控制的默认配色方案。
  • solarized来自 Solarized 的配色方案,深色版本。
  • solarized_light来自 Solarized 的配色方案,浅色版本。

使用 vtcol 并指定--scheme选项来指定您选择的方案

vtcol --scheme solarized_light

要查看可用的方案,请使用--list选项。如果指定的方案不是预定义方案之一,vtcol 将将名称解释为文件名。同样,通过指定--file参数从定义文件直接加载方案。

vtcol --file ./schemes/solarized

这些参数接受-作为参数以从stdin.

读取。此外,为了查看方案的定义,例如为了验证 vtcol 是否正确解析它,请指定--dump选项。

vtcol --dump default
vtcol --dump ./schemes/solarized

这将按照方案指定的方式打印颜色定义列表;如果指定的名称不解析为预定义方案,则将其解释为文件名。

构建

vtcol 仓库旨在与标准 Rust 工具链兼容。因此,该项目使用 Cargo 打包。要编译二进制文件,请运行

cargo build

在项目根目录中。这将为您提供一个vtcol二进制文件。

背景

Linux 终端附带的默认调色板是从虚拟控制台实现的漫长历史继承而来的。指定的颜色是为了完全合理的实用主义原因。然而,调色板可能不符合每个人的品味。不幸的是,控制台不容易进行主题化:需要调用特殊的ioctl(2)以二进制形式准备的颜色,以便内核切换调色板。

vtcol 试图通过简单的纯文本输入格式来简化控制台的主题化。包括来自 Solarized 家族的非常受欢迎的主题作为预定义的调色板;Linux 默认调色板也是如此,因此它们在实验时可以方便地恢复。

C 中实现的 vtcols 吸取了许多灵感来自 setcolors 工具。 vtcols 本身是用 Rust 实现的;可以在 Github 上找到其公共仓库。作者大量使用了原始的 setcolors,主要在其自定义 initramfs 中。编写 vtcols 的主要动机来自于好奇心,想知道如何使用更现代的工具实现相同的目标。

关于

vtcols 主要是在图宾根和德累斯顿之间的长途火车上编写的,因此预计提交历史将表现出一定的不连续性。其 作者 是 Philipp Gesang;请参阅 Bitbucket (作者-bb) 和 Github (作者-gh) 页面。

vtcol 的源代码可以从 官方仓库 获取。

vtcol 可以根据 GNU 通用公共许可证 第 3 版(确切版本)进行重新分发。许可证的完整文本包含在仓库根目录下的文件COPYING中。如果您希望使用不同的许可证,请通过电子邮件联系 作者,您可能会说服我。

欢迎提交补丁或建议。

依赖关系

~485KB