{ 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; unknownRule = 42; }; extraConfigEarly = '' extra config early ''; 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) } ''; }; }