{ config, ... }:
{
  # Monitors
  wayland.windowManager.sway.config = {
    workspaceOutputAssign = let
      workspaces1 = [
        "0:${config.ws.w0}"
        "1:${config.ws.w1}"
        "2:${config.ws.w2}"
        "3:${config.ws.w3}"
        "11:${config.ws.w1a}"
        "22:${config.ws.w2a}"
        "33:${config.ws.w3a}"
      ];
      workspaces2 = [
        "4:${config.ws.w4}"
        "5:${config.ws.w5}"
        "6:${config.ws.w6}"
        "44:${config.ws.w4a}"
        "55:${config.ws.w5a}"
      ];
      workspaces3 = [
        "7:${config.ws.w7}"
        "8:${config.ws.w8}"
        "9:${config.ws.w9}"
        "77:${config.ws.w7a}"
        "88:${config.ws.w8a}"
      ];
      workspaces4 = [
        "66:${config.ws.w6a}"
        "99:${config.ws.w9a}"
      ];
      assign = output: workspaces: map (workspace: {
        inherit workspace;
        inherit output;
      }) workspaces;
    in
      (assign "${config.displays.tower1}" workspaces1) ++
      (assign "${config.displays.tower2}" workspaces2) ++
      (assign "${config.displays.tower3}" workspaces3) ++
      (assign "${config.displays.tower4}" workspaces4) ++

      (assign "${config.displays.estradiol1}" workspaces1) ++
      (assign "${config.displays.estradiol1}" workspaces2) ++
      (assign "${config.displays.estradiol2}" workspaces3) ++
      (assign "${config.displays.estradiol2}" workspaces4);
  };
}
