#系统信息 #toml配置 #系统 #多线程 #命令行 #配置文件 #获取

app rocketfetch

一个异步编写的 Rust 命令行系统信息工具,使用 TOML 文件配置以实现高性能

40 个版本

0.7.5 2024 年 7 月 25 日
0.7.4 2023 年 8 月 27 日
0.7.3 2022 年 12 月 31 日
0.7.2 2022 年 11 月 24 日
0.5.3 2021 年 7 月 30 日

#47命令行工具

Download history 37/week @ 2024-07-06 103/week @ 2024-07-20 31/week @ 2024-07-27 1/week @ 2024-08-03

135 每月下载量

MIT 和可能 GPL-3.0-only

71KB
1.5K SLoC

Rocketfetch

A *WIP* (非常欢迎贡献) 使用 Rust 编写并使用 TOML 文件配置以实现高性能的系统信息命令行工具。

Crates.io version Crates.io version Libraries.io dependency status for latest release

目录

灵感

Rocketfetchneofetch 启发。我想在 neofetch 中添加一些性能,同时改进配置。我的配置模仿了 Starship

安装

  • 使用 Cargo
cargo install rocketfetch

如果安装失败,请确保您已安装最新的 Rust 版本。

  • 使用 Homebrew 在 MacOSX 上
brew install devanlooches/rocketfetch/rocketfetch

命令行

rocketfetch 0.6.9
A WIP command line system information tool (neofetch) rewritten in rust for performance with toml file configuration.

USAGE:
    rocketfetch [FLAGS] [OPTIONS]

FLAGS:
    -h, --help            Prints help information
        --no-line-wrap    Disables Line Wrapping
    -V, --version         Prints version information

OPTIONS:
    -c, --config <FILE>    Sets custom configuration file.
    -m, --mode <mode>      Set the printing mode. Can be one of `side-block`, `bottom-block`, or `classic`

配置

您可以通过默认路径 ~/.config/rocketfetch 或通过在 CLI 中指定 -c 选项来配置 rocketfetch。

顶层

默认值 描述
module-order "用户 分隔符 os 主机 内核 运行时间 软件包" 指定模块将按空格分隔的顺序排列。可能的模块有:用户、分隔符、操作系统、主机、内核、运行时间和软件包,以及您定义的任何自定义模块。您可以多次指定一些模块。更多内容即将推出!
offset 4 指定标志和信息的间距数量。
wrap-lines true 是否包装输出行。
logo-cmd "auto" 获取logo的命令。如果设置为auto或空,将自动检测操作系统并选择相应的logo。(目前仅支持macos和Arch Linux。)

格式标题

默认值 描述
mode "classic" 设置输出模式。可以是classic(neofetch风格)、side-block(带信息块)或bottom-block(带信息块的logo)。
top-left-corner-char "╭" 设置用作块左上角的字符(仅在bottom-block模式下有效)。
top-right-corner-char "╮" 设置用作块右上角的字符(仅在side-block和bottom-block模式下有效)。
bottom-left-corner-char "╰" 设置用作块左下角的字符(仅在side-block和bottom-block模式下有效)。
bottom-right-corner-char "╯" 设置用作块右下角的字符(仅在side-block和bottom-block模式下有效)。
horizontal-char "─" 设置用作块顶部和底部的字符(仅在side-block和bottom-block模式下有效)。
vertical-char "│" 设置用作块右侧和左侧的字符(仅在side-block和bottom-block模式下有效)。
padding-left 1 设置在块内每个模块之前放置空格的数量(仅在side-block和bottom-block模式下有效)。
padding-right 1 设置在块内每个模块之后放置空格的数量(仅在side-block和bottom-block模式下有效)。
padding-top 0 设置在块内模块上方放置行数的数量(仅在side-block和bottom-block模式下有效)。

用户标题

默认值 描述
pre-text-style "bold.yellow" 一个格式字符串,每个单词由点分隔,描述此模块之前文本的样式
pre-text "" 此模块之前的文本
output-style "white" 一个格式字符串,每个单词由点分隔,描述文本的样式
separator-style "white" 一个格式字符串,每个单词由点分隔,描述用户名和主机名之间的样式
separator-char "@" 分隔用户名和主机名的字符

分隔符标题

默认值 描述
style "white" 一个格式字符串,每个单词由点分隔,描述分隔符的样式
repeat-num 0 重复分隔符字符以形成分隔符的次数。如果设置为0,则重复次数与上述模块的长度相同
char "-" 用作分隔符的字符

OS标题

默认值 描述
pre-text-style "bold.yellow" 一个格式字符串,每个单词由点分隔,描述此模块之前文本的样式
pre-text "OS: " 此模块之前的文本
output-style "white" 一个格式字符串,每个单词由点分隔,描述文本的样式

主机标题

默认值 描述
pre-text-style "bold.yellow" 一个格式字符串,每个单词由点分隔,描述此模块之前文本的样式
pre-text "Host: " 此模块之前的文本
output-style "white" 一个格式字符串,每个单词由点分隔,描述输出文本的样式

内核标题

默认值 描述
pre-text-style "bold.yellow" 一个格式字符串,每个单词由点分隔,描述此模块之前文本的样式
pre-text "Kernel: " 此模块之前的文本
output-style "white" 一个格式字符串,每个单词由点分隔,描述输出文本的样式

运行时间标题

默认值 描述
pre-text-style "bold.yellow" 一个格式字符串,每个单词由点分隔,描述此模块之前文本的样式
pre-text "Uptime: " 此模块之前的文本
output-style "white" 一个格式字符串,每个单词由点分隔,描述输出文本的样式
time-format "$days days, $hours hours, $minutes minutes" 一个描述时间格式的字符串。变量有:$years,$days,$hours,$minutes,$seconds。

软件包标题

默认值 描述
pre-text-style "bold.yellow" 一个格式字符串,每个单词由点分隔,描述此模块之前文本的样式
pre-text "Packages: " 此模块之前的文本
output-style "white" 一个格式字符串,每个单词由点分隔,描述输出文本的样式

Shell标题

默认值 描述
pre-text-style "bold.yellow" 一个格式字符串,每个单词由点分隔,描述此模块之前文本的样式
pre-text "Shell: " 此模块之前的文本
output-style "white" 一个格式字符串,每个单词由点分隔,描述输出文本的样式

分辨率标题

默认值 描述
pre-text-style "bold.yellow" 一个格式字符串,每个单词由点分隔,描述此模块之前文本的样式
pre-text "Resolution: " 此模块之前的文本
output-style "white" 一个格式字符串,每个单词由点分隔,描述输出文本的样式

桌面环境标题

默认值 描述
pre-text-style "bold.yellow" 一个格式字符串,每个单词由点分隔,描述此模块之前文本的样式
pre-text "Desktop Environment: " 此模块之前的文本
output-style "white" 一个格式字符串,每个单词由点分隔,描述输出文本的样式

窗口管理器标题

默认值 描述
pre-text-style "bold.yellow" 一个格式字符串,每个单词由点分隔,描述此模块之前文本的样式
pre-text "Window Manager: " 此模块之前的文本
output-style "white" 一个格式字符串,每个单词由点分隔,描述输出文本的样式

终端标题

默认值 描述
pre-text-style "bold.yellow" 一个格式字符串,每个单词由点分隔,描述此模块之前文本的样式
pre-text "Terminal: " 此模块之前的文本
output-style "white" 一个格式字符串,每个单词由点分隔,描述输出文本的样式

自定义标题

描述
pre-text-style 一个用点分隔每个词的格式字符串,用于描述此模块之前的文本样式
pre-text 此模块之前的文本
output-style 一个格式字符串,每个单词由点分隔,描述输出文本的样式
命令 运行以获取模块输出的命令

默认配置

默认配置将如下所示

module-order = "user delimiter os host kernel uptime packages shell resolution desktop-environment window-manager terminal cpu"
offset = 4
logo-cmd = "auto"
wrap-lines = true

[format]
mode = "classic"
top-left-corner-char = ""
top-right-corner-char = ""
bottom-left-corner-char = ""
bottom-right-corner-char = ""
horizontal-char = ""
vertical-char = ""
padding-left = 1
padding-right = 1
padding-top = 0

[user]
pre-text-style = "bold.yellow"
pre-text = ""
output-style = "bold.yellow"
separator-style = "white"
separator-char = "@"

[delimiter]
style = "white"
repeat-num = 0
char = "-"

[os]
pre-text-style = "bold.yellow"
pre-text = "OS: "
output-style = "white"

[host]
pre-text-style = "bold.yellow"
pre-text = "Host: "
output-style = "white"

[kernel]
pre-text-style = "bold.yellow"
pre-text = "Kernel: "
output-style = "white"

[uptime]
pre-text-style = "bold.yellow"
pre-text = "Uptime: "
output-style = "white"
time-format = "$days days, $hours hours, $minutes minutes"

[packages]
pre-text-style = "bold.yellow"
pre-text = "Packages: "
output-style = "white"

[shell]
pre-text-style = "bold.yellow"
pre-text = "Shell: "
output-style = "white"

[resolution]
pre-text-style = "bold.yellow"
pre-text = "Resolution: "
output-style = "white"

[desktop-environment]
pre-text-style = "bold.yellow"
pre-text = "Desktop Environment: "
output-style = "white"

[window-manager]
pre-text-style = "bold.yellow"
pre-text = "Window Manager: "
output-style = "white"

[terminal]
pre-text-style = "bold.yellow"
pre-text = "Terminal: "
output-style = "white"

[cpu]
pre-text-style = "bold.yellow"
pre-text = "CPU: "
output-style = "white"

待办事项

  • 添加更多模块(对于初学者:neofetch支持的模块)
    • 操作系统
    • 主机
    • 内核
    • 运行时间
    • shell
    • 分辨率
    • 桌面环境
    • 窗口管理器
    • 终端
    • 处理器
    • 窗口管理器主题
    • 图形处理器
    • 内存
    • 图形处理器驱动程序
    • 处理器使用率
    • 磁盘
    • 电池
    • 当前播放的歌曲
    • 音乐播放器
    • 本地IP
    • 用户
    • 区域设置
    • 颜色

依赖项

~5–35MB
~511K SLoC