1
0
Fork 0
mirror of https://github.com/nix-community/home-manager synced 2024-11-05 02:39:45 +01:00
home-manager/tests/modules/programs/i3status-rust/with-multiple-bars.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

100 lines
2.2 KiB
Nix

{ config, lib, pkgs, ... }:
{
config = {
programs.i3status-rust = {
enable = true;
bars = {
top = {
blocks = [
{
block = "disk_space";
info_type = "available";
interval = 60;
warning = 20.0;
alert = 10.0;
}
{
block = "memory";
format_mem = " $icon $Mug ($Mup) ";
format_swap = " $icon $SUp ";
}
];
};
bottom = {
blocks = [
{
block = "cpu";
interval = 1;
format = " $icon $barchart ";
}
{
block = "load";
interval = 1;
format = " $icon $1m $5m ";
}
];
icons = "awesome5";
theme = "gruvbox-dark";
};
};
};
test.stubs.i3status-rust = { version = "0.30.0"; };
nmt.script = ''
assertFileExists home-files/.config/i3status-rust/config-top.toml
assertFileContent home-files/.config/i3status-rust/config-top.toml \
${
pkgs.writeText "i3status-rust-expected-config" ''
[[block]]
alert = 10.0
block = "disk_space"
info_type = "available"
interval = 60
warning = 20.0
[[block]]
block = "memory"
format_mem = " $icon $Mug ($Mup) "
format_swap = " $icon $SUp "
[icons]
icons = "none"
[theme]
theme = "plain"
''
}
assertFileExists home-files/.config/i3status-rust/config-bottom.toml
assertFileContent \
home-files/.config/i3status-rust/config-bottom.toml \
${
pkgs.writeText "i3status-rust-expected-config" ''
[[block]]
block = "cpu"
format = " $icon $barchart "
interval = 1
[[block]]
block = "load"
format = " $icon $1m $5m "
interval = 1
[icons]
icons = "awesome5"
[theme]
theme = "gruvbox-dark"
''
}
'';
};
}