2 个不稳定版本
0.2.0 | 2023年10月11日 |
---|---|
0.1.0 | 2023年10月2日 |
#674 in GUI
42KB
890 行
yaib: 另一种 i3 侧边栏
yaib 是一个非常简单(截至本文写作时)的 i3 窗口管理器(X11)状态栏,利用异步计算来限制性能瓶颈。这使得一个非常节省资源的侧边栏,能够显示统计信息和您想显示的其他内容。
yaib 在写作时非常不成熟。您想要的大部分功能都不会在这里。
一些功能
- 可展开。每个块都有一个
icon
值,可以点击以展开它。结合紧急颜色值,您就无需整天看到文本更新;只需在需要时看到颜色。 - 页面:使用箭头在许多不同的页面之间切换。这样,您可以在侧边栏中隐藏您不关心的不那么重要的事情,但在需要时可以访问它们。
- 资源轻量:yaib 非常小,几乎不使用资源。
以下是在默认配置中展开的磁盘部分的示例
它折叠了(只需点击即可)
安装
发布
cargo install yaib
开发(推荐)
cargo install --git https://github.com/erikh/yaib
执行 & 设置
yaib
将侧边栏的内容以 JSON 格式输出到标准输出。
要将它集成到您的 i3 安装中,请在您的 ~/.config/i3/config
文件中提供如下段落;请记住删除任何其他类似的块。
注意:在此段落中,您必须将 $HOME
替换为您的主目录。
bar {
font pango:monospace 10, FontAwesome 10
position bottom
status_command $HOME/.cargo/bin/yaib
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
}
}
这样做并重新加载您的配置(默认为 mod + shift + r)后,侧边栏应该会出现!
配置
有一个示例配置文件。此配置文件可以通过设置环境中的 YAIB_CONFIG
或在 $XDG_CONFIG_HOME/yaib/yaib.config.yaml
中创建文件来指定。
字段描述如下
update_interval
是在轮询系统并显示新统计数据之前要等待的时间。它以 fancy duration 格式 指定,您可以在该链接中了解更多信息。pages
是用于翻页的页面列表。每个页面包含一个项目列表。name
是块的名称。它必须存在,且对于所有块必须是唯一的。icon
是可点击的简短内容。不支持在静态值中使用。如果没有提供,将始终显示格式化内容。urgency
是一个包含3个元素的元组,值均小于100。它们对应于紧急值,绿色/黄色/红色。不支持在静态或音乐值中使用。当低于最低值时,使用默认文本颜色。urgency_colors
是一个包含3个元素的元组,值为#rrggbb
。当设置紧急阈值时使用这些值。type
是块的类型。value
和format
依赖于此类型,因此它们将在下面的类型中指定。command
执行命令。它不会通过shell执行,并且通过空格对值进行分词。值是要执行的命令。可以使用update_interval
来覆盖全局update_interval
以运行执行缓慢或无需更新的命令。有关更多信息,请参阅example_command.sh
。命令必须输出(并且仅输出)一个包含以下三个参数的JSON对象name
:这是您配置的块的名称,因此可以映射回。value
:这是您想在栏中显示的数据。如果存在,图标将被自动连接。percent
:这是可选的,0-100之间的整数,有助于紧急着色。
dynamic
仅适用于通过Unix套接字更新的类型(见下文)。它不携带任何值,不传达紧急性,也没有格式。static
仅显示在value
中设置的静态字符串。不应用格式化。music
通过MPRIS(例如,spotify,xmms)显示当前播放音乐曲目的一些选项。不使用值。%artist
是当前艺术家%title
是当前曲目标题%pct_played
是您在曲目中所处的完整百分比。%total_played
是minute:second
,适合常规更新。
cpu
是CPU指标。两者%count
(CPU数量)和%usage
都可用作格式字符串。disk
是存储指标。value
是挂载点。%total
是总用户存储%usage
是已使用量%pct
是磁盘使用的百分比。
memory
是内存指标。不使用值。%total
是总用户内存%usage
是已使用量%swap_total
是可用的交换空间量%swap_usage
是使用的交换空间量%pct
是使用的内存百分比。%pct_swap
是使用的交换空间百分比。
load
是内存指标。不使用值。%1
是一分钟负载平均值%5
是五分钟负载平均值%15
是十五分钟负载平均值
time
是时间指标。没有使用值。格式是 chrono的strftime格式
Unix套接字
注意: 这一层未来可能会发生重大变化。如果您使用此功能,建议您通过yaib
命令使用它,而不是直接写入套接字,因为协议肯定会发生变化。
您可以使用与command
类型相同的JSON格式写入块。每次写入一个块;使用yaib write-block '<block json>'
直接写入套接字。套接字也位于/tmp/yaib.sock
;只有最新运行的yaib
副本将响应它,但您可以使用nc
等工具来控制它。只需向套接字发送一些JSON数据。有关输出格式的示例,请参阅example_command.sh。
无论块的name
值设置为多少,都将替换挡板中的块。如果此块在配置中不是dynamic
类型,则它不会持久存在,在下一次迭代中将被新的收集数据覆盖(这种行为预计将在未来发生变化)。
许可
MIT
作者
Erik Hollensbe [email protected]
依赖项
~16–27MB
~416K SLoC