home-manager/tests/modules/programs/i3status-rust/with-default.nix
Thiago Kenji Okada b832390db3
i3status-rust: update it to handle 0.30.x releases (#3773)
* i3status-rust: update it to handle 0.30.x releases

0.30.0 is a major release that brings many breaking changes to the
configuration file. See:
https://github.com/greshake/i3status-rust/blob/master/NEWS.md#i3status-rust-0300

The only one that actually affects the module though is the change in
how the theme/icons are defined. Other changes are mostly on how to
specify formatting/blocks, and since we just generate the TOML as-is, it
needs changes in the user side.

So most changes in this commit are documentation updates, having
up-to-date examples from things that changed, e.g.: the new `click`
attribute that now can be applied to any block.

* i3status-rust: only use new format if i3status-rust >= 0.30.0

* news: document the i3status-rust changes

* i3status-rust: add thiagokokada as maintainer
2023-03-16 12:48:55 +01:00

54 lines
1.2 KiB
Nix

{ config, lib, pkgs, ... }:
{
config = {
programs.i3status-rust = { enable = true; };
test.stubs.i3status-rust = { version = "0.30.0"; };
nmt.script = ''
assertFileExists home-files/.config/i3status-rust/config-default.toml
assertFileContent home-files/.config/i3status-rust/config-default.toml \
${
pkgs.writeText "i3status-rust-expected-config" ''
[[block]]
alert = 10.0
block = "disk_space"
info_type = "available"
interval = 60
path = "/"
warning = 20.0
[[block]]
block = "memory"
format = " $icon mem_used_percents "
format_alt = " $icon $swap_used_percents "
[[block]]
block = "cpu"
interval = 1
[[block]]
block = "load"
format = " $icon $1m "
interval = 1
[[block]]
block = "sound"
[[block]]
block = "time"
format = " $timestamp.datetime(f:'%a %d/%m %R') "
interval = 60
[icons]
icons = "none"
[theme]
theme = "plain"
''
}
'';
};
}