2 个版本
0.1.1 | 2022年1月16日 |
---|---|
0.1.0 | 2022年1月15日 |
#2045 in 命令行工具
48KB
810 行
RUFET
另一个命令行系统信息工具,但用 Rust 编写!
内容
路线图
计划未来的事情
代码
- ANSI 图像
- 真实图像支持(Kitty,ueberzug)
- Sixel 支持
内置模块
- 主机名
- 内核
- 内存
- 操作系统
- 运行时间
- 自定义用户脚本
- 常用环境变量
- 编辑器
- 终端
- 终端颜色
- 窗口管理器
- 桌面环境
- 软件包
- 主题 - gtk, Qt
- 分辨率
- GPU
文档
- 在 docs.rs 上的文档
- 更好的 Markdown
- 配置说明
- 标志设计
- 配置示例,截图
安装
cargo install rufet
或手动克隆仓库并构建
配置
配置通过位于 $HOME/.config/rufet/config.toml
的 toml 文件完成。所有内容都被分成了模块,例如 [data]
, [logo]
,[data.hostname]
,每个模块都有变量来指定模块的显示方式。一些模块有独特的变量。 以下将提及这些变量。
[data]
format="$hostname$os"
height=10
margin=2
padding=5
[data.hostname]
format="this is my hostname: $value"
[logo]
format="logo"
[[logo.rule]]
id="logo"
exec='echo -ne "$(<$HOME/.config/rufet/ansi)" \\n'
变量
格式
更改模块将显示的文本。每个模块将用模块获取的值替换 $value
。因此,主机名将用用户的主机名替换 $value
。
[data.hostname]
format="This is my hostname: $value"
高度
修改模块占用的最小行数。如果您想在模块和边框之间留出一些空间,或者想让数据模块的高度与标志一致,则很有用。[data] height=25
填充
在模块的左侧和右侧添加空白字符,但位于边框内,如果您想在模块和边框的两侧留出一些空间,则很有用。data.kernel padding=25
边距
在模块的左侧和右侧添加空白字符,但位于边框外,如果您想在两个由边框分隔的模块之间留出一些空间,则很有用。[data] margin=2
对齐
改变模块内文本的对齐方式 [data] alignment= "left"|"center"|"right"
唯一变量
数据
数据模块,包含所有模块的内置ID,例如 $hostname
,$os
等。但它还有一个 $all
,将显示所有尚未使用的可用模块。因此,如果您想始终首先显示内存使用情况,可以这样做:format="$memory$all"
运行时间
“运行时间”有一个变量 time_format
,用于格式化显示的时间。例如:time_format="运行时间是:$d天,$h小时,$m分钟,$s秒"
自定义边框
边框是每个模块内的一个结构。它有自己的变量,可以自定义,如下所示
[data.hostname.border]
top: ['╭', '─', '╮'],
bottom: ['╰', '─', '╯'],
sides: ['│', '│'],
visible: true,
color: "#ff00ff",
background: "255;0;0",
规则
如果您想创建一个自定义模块来显示文本或执行脚本,您可以通过 rules
来这样做,规则是一个具有 id
的结构,当在其他模块中找到时将被替换为值。规则可用于创建自定义模块或更改现有模块的颜色和外观。规则的变量
id: "id to replace"
text: "text"
exec: "shell command"
color: "#fff"|"0;0;0"
background: "#fff"|"0;0;0"
effects: ["bold","faint","italic","underline","blink","reverse","conceal","crossed"]
border: Border
padding: int
margin: int
alignment: String
如果未设置 text
变量,则将使用自身替换 id
,同时赋予其颜色。如果要更改预定义ID(如 $value
)的颜色,则 text
变量的优先级高于 exec
更改颜色
更改 color
和 background
变量的值,它们支持十六进制代码颜色,如 #f0f
和 #ff00ff
,以及用分号分隔的 rgb,如 255;0;255
[data.hostname]
format="this is my red hostname: $value , $blue"
[[data.hostname.rule]]
id="$value"
color="#ff0000"
[[data.hostname.rule]]
id="$blue"
text="this is blue text with a green background"
color="#0000ff"
background="#00ff00"
自定义模块
自定义模块仍然是规则,但您不是使用 text
变量来选择 id
,而是使用 exec
变量来执行一个打印到标准输出的 shell 命令。
[data]
format="$custom1"
[[data.rule]]
id="$custom1"
exec="echo -n aaa"
padding=5
[data.rule.border]
color="#f00"
visible=true
ANSI 标志
由于toml的构建方式,它不支持用于ANSI艺术的\e
转义代码,或用于它的任何其他转义代码,要在toml中使用ANSI艺术,只能使用\u001B
转义代码,为此,您需要使用一个图像到ANSI转换器,然后将所有转义代码替换为\u001B
。相反,建议使用一个规则,该规则使用命令来打印文件内容,例如echo
,或您选择的任何脚本。这将使其更容易,并且会使配置文件更加简洁。
[logo]
format="logo"
[[logo.rule]]
id="logo"
exec='echo -ne "$(<$HOME/.config/rufet/ansi)" \\n'
截图
依赖项
~0.7–1.8MB
~36K SLoC