#wayland-compositor #sway #swaybar #tiling #info #displayed #bar

app swaybar_info

为 swaybar 提供显示信息

17 个版本

0.1.16 2024 年 6 月 13 日
0.1.15 2023 年 12 月 6 日
0.1.14 2023 年 7 月 13 日
0.1.13 2023 年 6 月 5 日
0.1.4 2022 年 8 月 23 日

#57 in GUI

MIT 许可证

56KB
1.5K SLoC

swaybar_info

swaybar_info crates.io version badge swaybar_info license badge

swaybar_info preview image

关于

swaybar_info 是一个供 swaybar 使用的程序,它由 Sway 瓦片化 Wayland 合成器 使用。

版本变更

有关详细信息,请参阅 Changelog.md。

帮助文本

 Usage:
   -h | --help                                      Prints help
   --netdev=<device_name>                           Check network traffic on specified device
   --netdev_width=<width>                           Sets the min-width of the netdev output (default 11)
   --netgraph_max_bytes=<bytes>                     Enable "graph" output when polling network traffic
                                                      (Set to "dynamic" instead of a byte count for dynamic sizing)
   --netgraph_size=<size>                           Set the number of characters displayed in the net-graph (size of graph; default 10)
   --netgraph_dyn_display                           Enable showing the current maximum value in the graph
   --interval-sec=<seconds>                         Output at intervals of <seconds> (default 5)
   --acpi-builtin                                   Use "acpi -b" built-in fetching (battery info, with color)
   --regex-cmd=<cmd>[SPLIT]<args...>[SPLIT]<regex>  Use an output of a command as a metric
   --time-format=<date format string>               Set the format string for the date

用法

# build the "release" build of the program
cargo build --release
# put the "release" build somewhere to be used by swaybar
cp ./target/release/swaybar_info ~/.config/sway/

# Alternatively, get it from crates.io/
cargo install swaybar_info
# The `swaybar_info` binary should be placed in $HOME/.cargo/bin/

将以下内容放入您的 ~/.config/sway/config 中(假设二进制文件位于 $HOME/.config/sway/swaybar_info

bar {
    position top
    # Set --netdev=<device> such that <device> is the network device you
    # want to monitor. You can omit --netdev=<device>, but that will also
    # cause the program to omit network traffic stats.
    status_command $HOME/.config/sway/swaybar_info --netdev=enp7s0

    # A "built-in" for "acpi -b" is available, and can be activated with the
    # --acpi-builtin flag:

    #status_command $HOME/.config/sway/swaybar_info --acpi-builtin

    # One can use the "--regex-cmd=<cmd>[SPLIT]<args...>[SPLIT]<regex>" option like so:

    #status_command $HOME/.config/sway/swaybar_info --regex-cmd="acpi[SPLIT]-b[SPLIT][0-9]+%.*"

    # This example gets battery info into the bar.
    # Multiple args should be separated with "[SPLIT]".
    # Note that the <args...> portion is optional.


    # The following uses 24 hour time
    #status_command $HOME/.config/sway/swaybar_info --time-format="%Y-%m-%d %R:%S"
}

--regex-cmd 的高级用法

如果提供给 swaybar_info 的正则表达式有两个捕获组,则第一个捕获组将用作要显示的文本,第二个捕获组将期望为颜色字符串(例如,FFFFFFFFFF 为白色,44FF44 为浅绿色)。

例如,如果使用 --regex-cmd 调用的脚本输出如下

MPD Title | MPD Album | playingCOLORSPLIT44FF44

有时会变成

MPD is not running

然后可以使用以下正则表达式解析此文本

status_command $HOME/.config/sway/swaybar_info \
'--regex-cmd=$HOME/scripts/mpc/mpcCommand.sh[SPLIT]simple[SPLIT]^\(.\*?\)\(?:COLORSPLIT\([A-F0-9]{6}\)\)?$'

请注意,某些字符(如 *()需要转义,因为它们将被原样传递给 shell。

如果正则表达式字符串中只使用一个捕获组,则该捕获组将用于输出文本,颜色将不指定(通常默认为白色)。

有关支持的正则表达式类型的参考,请参阅 此页面

网络图

参数--netgraph_max_bytes=<bytes>启用一个宽度为10个字符的文本图,显示网络流量的历史记录。算法检查一个时间段内发送或接收的字节数中的较大值,并将其与<bytes>进行比较。如果它更大,则图中的字符将是一个“实心块”字符。如果它更小,则图中的字符将是9个可能字符中的任意一个(一个空格和8个unicode块字符)。因此,这将输出网络流量的历史图。对于<bytes>的合理值可以是1048576,即1 MiB。

指定“dynamic”而不是字节数(例如--netgraph_max_bytes=dynamic)可以使图表根据一个时间段内传输的最大字节数动态调整大小。

当使用动态netgraph时,swaybar_info可以显示netgraph中的最大值。使用--netgraph_dyn_display选项启用此功能。(这仅在启用动态netgraph时--netgraph_max_bytes=dynamic)。

netgraph的大小默认为10个字符,但可以使用--netgraph_size=<size>进行更改。

依赖项

使用serde_jsonserdechronoregex

依赖项

~4–6MB
~107K SLoC