home-manager/tests/modules/services/window-managers/sway/sway-workspace-output.nix
Andrew Marshall 3a435342e2
sway: check config file validity
Helps avoid successful build but Sway failing to start.

To meaningfully test this, I had to actually use `pkgs.sway` in the
test rather than the stub, but left all other tests using the stub and
changed them to skipping the test.

We need to pass `--unsupported-gpu` as Sway checks for `nvidia` in
`/proc/modules`, and the Nix sandbox has `/proc/modules` available.
2024-04-19 23:16:55 +02:00

52 lines
1.1 KiB
Nix

{ config, lib, pkgs, ... }:
let
i3 = {
ws1 = "1";
ws2 = "ABC";
ws3 = "3: Test";
ws4 = ''!"§$%&/(){}[]=?\*#<>-_.:,;²³'';
ws5 = "Multiple";
};
in {
imports = [ ./sway-stubs.nix ];
wayland.windowManager.sway = {
enable = true;
package = config.lib.test.mkStubPackage { outPath = "@sway@"; };
checkConfig = false;
# overriding findutils causes issues
config.menu = "${pkgs.dmenu}/bin/dmenu_run";
config.workspaceOutputAssign = [
{
workspace = "${i3.ws1}";
output = "eDP";
}
{
workspace = "${i3.ws2}";
output = "DP";
}
{
workspace = "${i3.ws3}";
output = "HDMI";
}
{
workspace = "${i3.ws4}";
output = "DVI";
}
{
workspace = "${i3.ws5}";
output = [ "DVI" "HDMI" "DP" ];
}
];
};
nmt.script = ''
assertFileExists home-files/.config/sway/config
assertFileContent $(normalizeStorePaths home-files/.config/sway/config) \
${./sway-workspace-output-expected.conf}
'';
}