26 个版本

0.33.1 2024年4月7日
0.33.0 2024年2月19日
0.32.3 2023年11月27日
0.31.9 2023年7月31日
0.20.7 2021年11月30日

#112 in 开发工具

GPL-3.0-only

685KB
15K SLoC

i3status-rs

demo1

i3status-rs 是一个由 Rust 编写的丰富功能和资源友好的 i3status 替代品。它提供了一种在支持 i3bar 协议 的条形上显示系统信息“块”(时间、电池状态、音量等)的方法。

入门

从以下包之一安装

Packaging status

  • 对于 Fedora/CentOS,您可以从 COPR 安装。

  • 对于 NixOS,您也可以使用 Home Managerprograms.i3status-rust.enable = true 查看可用选项

  • 注意: 不支持通过 cargo 安装。

否则请参阅 手动安装 文档。

配置

安装 i3status-rs 后,编辑您喜欢的 示例配置。默认位置为 $XDG_CONFIG_HOME/i3status-rust/config.toml

存在一些可选的全局配置变量,可以在顶层或TOML 表中定义。

[icons]

描述 默认值
icons 应使用的图标集 "none"
[icons.icons_overrides] 请参阅下方的主题和图标

[theme]

描述 默认值
theme 应使用的主题 "plain"
[theme.theme_overrides] 请参阅下方的主题和图标

全局变量

描述 默认值
icons_format 用于自定义每个图标外观的字符串。可用于编辑图标的间距或指定仅通过 pango 标记应用于图标的字体。例如," <span font_family='NotoSans Nerd Font'>{icon}</span> " "{icon}"
invert_scrolling 是否反转滚动方向,对触摸板用户很有用。 false
error_format 用于自定义显示块错误的字符串。请参阅下方的可用占位符。 "$short_error_message|X"
error_fullscreen_format 用于自定义单击块时显示的块错误的字符串。请参阅下方的可用占位符。 "$full_error_message"

可用的 error_formaterror_fullscreen_format 占位符

占位符
full_error_message 完整的错误消息
short_error_message 短错误消息(如有)

进一步文档

最新版本

将其集成到 i3/sway 中

接下来,编辑您的栏配置以使用 i3status-rust。例如

bar {
    font pango:DejaVu Sans Mono, FontAwesome 12
    position top
    status_command path/to/i3status-rs path/to/your/config.toml
    colors {
        separator #666666
        background #222222
        statusline #dddddd
        focused_workspace #0088CC #0088CC #ffffff
        active_workspace #333333 #333333 #ffffff
        inactive_workspace #333333 #333333 #888888
        urgent_workspace #2f343a #900000 #ffffff
    }
}

为了使用内置的 Font Awesome 图标集支持,您需要将其包含在上述 font 参数中。请使用 fc-match 检查 "FontAwesome" 是否可以正确识别字体,例如。

$ fc-match FontAwesome
fontawesome-webfont.ttf: "FontAwesome" "Regular"

请注意,Font Awesome 字体的名称可能在版本 5 或更高版本中已更改。
您可以使用 fc-list 查看您可用的 Awesome 字体的名称。

$ fc-list | grep -i awesome
/usr/share/fonts/TTF/fa-solid-900.ttf: Font Awesome 5 Free,Font Awesome 5 Free Solid:style=Solid
/usr/share/fonts/TTF/fa-regular-400.ttf: Font Awesome 5 Free,Font Awesome 5 Free Regular:style=Regular

在此示例中,您必须使用 Font Awesome 5 Free 而不是上面示例配置中的 FontAwesome 12。您可以使用 fc-match 再次验证名称

有关进一步讨论,请参阅 #130

最后,重新加载 i3: i3 reload

行为

每个块都有一个 State,它定义了其颜色:一个是 "空闲"、"信息"、"良好"、"警告"、"严重" 或 "错误"。状态由每个块的逻辑确定,例如,音乐块状态为 "信息",当存在活动播放器时。

当状态为 "错误" 时,会在块中显示简短的错误。通过单击块可以切换完整消息(覆盖配置中定义的任何单击操作)。在 error_interval 过期后,块将重新启动。

“i3bar”具有“节能”功能,当它被隐藏或被全屏容器遮挡时,会通过SIGSTOP信号暂停条形。如果这导致您的条形出现问题,请尝试使用带有--never-stop参数的i3status-rs运行,这会将i3发送的信号从SIGSTOP更改为SIGCONT。

除了每个块上的signal配置选项之外,i3status-rs还可以通过发送SIGUSR1信号来强制更新所有块。它还可以通过发送SIGUSR2信号就地重新启动(用于测试配置文件更改,非常有用)。

调试

在终端中运行i3status-rust以检查它输出的JSON。
此外,一些块具有可以启用调试日志,如下所示:RUST_LOG=block=debug i3status-rs其中“block”是块名称。

贡献

我们欢迎新的贡献者!请查看CONTRIBUTING.md

许可

此项目使用GPLv3许可。有关详细信息,请参阅LICENSE文件。

依赖项

~26–43MB
~694K SLoC