29 个版本 (稳定版)
1.8.1 | 2022年12月19日 |
---|---|
1.8.0 | 2022年9月25日 |
1.7.3 | 2022年1月22日 |
1.7.2 | 2021年5月8日 |
0.1.0 | 2018年3月23日 |
#178 in GUI
每月下载量 64
130KB
3.5K SLoC
dwm-status
DWM 状态服务,在需要时动态更新。深受 i3status-rust 启发。
示例状态栏:
要求
cargo
、rustc
和 lib{dbus,gdk-pixbuf,notify,x11}-dev
是构建二进制文件所需的。
构建和运行
$ # dev mode
$ cargo run -- <config-file>
$ # release mode
$ cargo build --release
$ ./target/release/dwm-status <config-file>
或全局安装到 ~/.cargo/bin
$ cargo install dwm-status
Nix 支持
作为 flake 构建
$ nix build
然后运行
$ ./result/bin/dwm-status <config-file>
配置
config-file
可以是 HJSON、JSON、TOML 或 YAML 文件。每个可能的格式都提供了一个填充默认值的配置文件,可以在 examples/default-settings
中找到。文件类型由其后缀确定。
有关如何在状态栏中使用图标的示例,请参阅 examples/icon-settings/nerd-font.toml
。您需要在 dwm
中的 config.h
中安装并指定可用的 nerd fonts 之一,例如。
static const char *fonts[] = { "Ubuntu Mono Nerd Font:size=9" };
通用选项
name | default | description |
---|---|---|
debug |
- | 已弃用,将在 2.0.0 版本中删除。默认日志级别现在是 INFO。 |
order |
[] |
按顺序列出启用的功能。 |
separator |
" / " |
每个功能之间的分隔符字符串。 |
功能:音频
注意: 需要 alsa-utils
。
显示已配置的alsa控制设备的状态。监听alsactl monitor
以获取更改。
配置选项
name | default | description |
---|---|---|
控制 |
"主控制" |
监听alsactl的alsa控制设备。 |
图标 |
[] |
图标列表,代表与当前音量的不同阶段,例如["LOW", "MIDDLE, "HIGH"] 。 |
静音 |
"静音" |
静音时的文本表示。 |
模板 |
"S {VOL}%" |
未静音时的文本表示。({VOL} 被替换为当前音量,{ICO} 被替换为图标) |
功能:背光
显示背光值的状态并监视/sys/class/backlight
的更改。
配置选项
name | default | description |
---|---|---|
设备 |
"intel_backlight" |
/sys/class/backlight 中的背光设备。 |
后备 |
无 |
如果device 不存在,则在/sys/class/backlight 中匹配第一个元素(Unix shell风格模式)。例如amdgpu_* |
图标 |
[] |
图标列表,代表与当前值的不同阶段,例如["LOW", "MIDDLE, "HIGH"] 。 |
模板 |
"L {BL}%" |
文本表示。({BL} 被替换为当前背光值,{ICO} 被替换为图标) |
功能:电池
注意:要接收DBus消息,必须运行upower
守护进程。
监视UPower DBus信号,以检测添加或删除的电池以及电池状态的变化。
如果启用通知器,当前正在放电且最满电池的容量低于配置的值时,将发送紧急通知(根据配置的紧急值,正常或关键)。
显示每个电池的以下信息
状态 | 示例 | 备注 |
---|---|---|
充电 | ▲10% (01:23) |
括号内是充满电所需时间 |
放电 | ▼50% (02:03) |
括号内是放电到空所需时间 |
以下信息作为功能块显示(如果定义了图标,则ICO
将被替换为图标)
电池计数 | 示例 | 备注 |
---|---|---|
0 | NO BATT |
|
1 | ▼ICO 50% (02:03) |
|
2 | ▼ICO 50% (02:03)·ICO 50% |
按名称字母顺序排列的电池 |
配置选项
name | default | description |
---|---|---|
充电 |
"▲" |
充电状态的文本表示。 |
放电 |
"▼" |
放电状态的文本表示。 |
enable_notifier |
true |
是否启用通知器。 |
图标 |
[] |
图标列表,代表与当前电池状态的不同阶段,例如["LOW", "MIDDLE, "HIGH"] 。 |
no_battery |
"NO BATT" |
无电池时的文本表示。 |
notifier_critical |
10 |
通过关键通知通知的最大电池值。 |
通知级别 |
[2, 5, 10, 15, 20] |
要通知的电池值。 |
separator |
"·" |
多个电池信息之间的分隔字符串。 |
功能:CPU负载
显示从 /proc/loadavg
获取的CPU负载,以配置的格式显示,并每 n
秒刷新一次。
配置选项
name | default | description |
---|---|---|
模板 |
"{CL1} {CL5} {CL15}" |
文本表示。({CLx} 将被替换为 x 分钟内的负载,其中 x 在 {1, 5, 15} 中) |
更新间隔 |
20 |
以秒为单位更新间隔。 |
功能:网络
注意: 命令 ip
、dig
和 iwgetid
需要在 PATH
中。
显示连接的ESSID、公网IPv4和IPv6地址。通过监听 ip monitor address link
触发更新。
配置选项
name | default | description |
---|---|---|
无值 |
"NA" |
未定义元素的值。 |
模板 |
"{IPv4} · {IPv6} · {ESSID}" |
文本表示。花括号内的占位符是 {IPv4} 、{IPv6} 和 {ESSID} 。 |
功能:时间
以配置的格式显示时间,并每秒或每分钟刷新一次。
配置选项
name | default | description |
---|---|---|
格式 |
"%Y-%m-%d %H:%M" |
chrono crate 的时间格式。 |
更新秒数 |
false |
是否每秒或每分钟更新时间功能,由解析 format 自动设置。 |
贡献
您需要带有夜间工具链的 rustup
、rustfmt、clippy 以及 lib{dbus,gdk-pixbuf,notify,x11}-dev
。我推荐安装 racer。
如果您使用 nix,可以使用 shell.nix
为所有依赖项安装,除了 rustup
工具链和组件。
$ nix-shell
[nix-shell]$ rustup install nightly
[nix-shell]$ rustup default nightly
依赖项
~16–24MB
~394K SLoC