home-manager/tests/modules/services/window-managers/bspwm/configuration.nix
Naïm Favier e2a85ac43f
bspwm: add alwaysResetDesktops (#2785)
If set to true, desktops configured in `monitors` will be reset every time
the config is run.

If set to false, desktops will only be configured the first time the config is run.
This is useful if you want to dynamically add desktops and you don't want them
to be destroyed if you re-run `bspwmrc`.
2022-03-17 22:56:56 -04:00

43 lines
1 KiB
Nix

{ lib, pkgs, ... }:
with lib;
{
config = {
xsession.windowManager.bspwm = {
enable = true;
monitors.focused =
[ "desktop 1" "d'esk top" ]; # pathological desktop names
alwaysResetDesktops = false;
settings = {
border_width = 2;
split_ratio = 0.52;
gapless_monocle = true;
external_rules_command = "/path/to/external rules command";
ignore_ewmh_fullscreen = [ "enter" "exit" ];
};
rules."*" = {
sticky = true;
center = false;
desktop = "d'esk top#next";
splitDir = "north";
border = null;
};
extraConfig = ''
extra config
'';
startupPrograms = [ "foo" "bar || qux" ];
};
test.stubs.bspwm = { };
nmt.script = ''
bspwmrc=home-files/.config/bspwm/bspwmrc
assertFileExists "$bspwmrc"
assertFileIsExecutable "$bspwmrc"
assertFileContent "$bspwmrc" ${
pkgs.writeShellScript "bspwmrc-expected" (readFile ./bspwmrc)
}
'';
};
}