bevy_window_manager 0.20.2

Bevy plugin for primary window restoration and multi-monitor support
Documentation
{
  "platform": "macos",
  "example_ron_path": "~/Library/Application Support/bevy_window_manager/restore_window.ron",
  "test_ron_dir": "tests/config/ron/macos",

  "tests": [
    {
      "id": "same_monitor_restore_mon0",
      "description": "Basic position/size persistence on Monitor 0",
      "automation": "full",
      "launch_monitor": 0,

      "ron_file": "same_monitor_restore_mon0.ron",

      "mutation": {
        "target_monitor": "launch",
        "position_offset": [400, 300],
        "size": [1000, 700]
      },

      "windows": {
        "primary": {
          "validate": ["position", "size", "monitor_index", "mode"]
        }
      }
    },

    {
      "id": "cross_high_to_low_W1",
      "description": "Window on low-DPI monitor restores correctly when launched from high-DPI monitor",
      "automation": "full",
      "launch_monitor": 0,
      "requires": {"min_monitors": 2, "different_scales": true},
      "workaround_keys": ["W1"],

      "workaround_validation": {
        "feature_flag": "workaround-winit-4440",
        "build_without": "--no-default-features",
        "build_with": "",
        "without_behavior": "Window restores to wrong position/size on Monitor 1 due to scale factor mismatch",
        "with_behavior": "Window restores to correct position/size on Monitor 1"
      },

      "ron_file": "cross_monitor_high_to_low.ron",

      "windows": {
        "primary": {
          "validate": ["position", "size", "monitor_index", "mode"]
        }
      }
    },

    {
      "id": "borderless_programmatic_mon0",
      "description": "Borderless fullscreen restore - starts in borderless mode via RON",
      "automation": "full",
      "launch_monitor": 0,

      "ron_file": "fullscreen_borderless_mon0.ron",

      "windows": {
        "primary": {
          "validate": ["monitor_index", "mode"]
        }
      }
    },

    {
      "id": "borderless_green_button",
      "description": "Tests macOS native fullscreen via green button (automated via AppleScript)",
      "automation": "full",
      "launch_monitor": 0,

      "ron_file": "fullscreen_borderless_green_button.ron",

      "click_fullscreen_button": true,
      "windows": {
        "primary": {
          "validate": ["mode"],
          "expected_mode": "BorderlessFullscreen"
        }
      }
    },

    {
      "id": "multi_window_0_0",
      "description": "Primary on Monitor 0, secondary on Monitor 0",
      "automation": "full",
      "launch_monitor": 0,

      "ron_file": "multi_window_0_0.ron",

      "windows": {
        "primary": {
          "validate": ["position", "size", "monitor_index", "mode"]
        },
        "window-1": {
          "spawn_event": "restore_window::SpawnManagedWindow",
          "validate": ["position", "size", "monitor_index", "mode"]
        }
      }
    },

    {
      "id": "persistence_remember_all",
      "description": "RememberAll mode preserves unspawned window entries in RON after shutdown",
      "automation": "full",
      "launch_monitor": 0,

      "ron_file": "multi_window_0_0.ron",

      "windows": {
        "primary": {
          "validate": ["position", "size", "monitor_index", "mode"]
        }
      },

      "persistence_validation": {
        "mode": "RememberAll",
        "expected_ron_keys": ["primary", "window-1"]
      }
    },

    {
      "id": "persistence_active_only",
      "description": "ActiveOnly mode prunes unspawned window entries from RON after shutdown",
      "automation": "full",
      "launch_monitor": 0,

      "ron_file": "multi_window_0_0.ron",

      "windows": {
        "primary": {
          "validate": ["position", "size", "monitor_index", "mode"]
        }
      },

      "persistence_validation": {
        "mode": "ActiveOnly",
        "expected_ron_keys": ["primary"],
        "unexpected_ron_keys": ["window-1"]
      }
    },

    {
      "id": "no_position_cross_dpi_restore",
      "description": "Window with no saved position on different-scale monitor restores visible with correct size on launch monitor",
      "automation": "full",
      "launch_monitor": 0,
      "requires": {"min_monitors": 2, "different_scales": true},
      "expect_mismatch": true,

      "ron_file": "no_position_cross_dpi.ron",

      "windows": {
        "primary": {
          "validate": ["size", "mode"]
        }
      }
    },

    {
      "id": "save_position_on_unmoved_window",
      "description": "Window that was never moved saves a real position (not None) to the state file",
      "automation": "full",
      "launch_monitor": 0,

      "ron_file": "no_position_same_monitor.ron",

      "windows": {
        "primary": {
          "validate": ["size", "mode"]
        }
      },

      "persistence_validation": {
        "expect_position_saved": ["primary"]
      }
    },

    {
      "id": "multi_window_0_1",
      "description": "Primary on Monitor 0, secondary on Monitor 1",
      "automation": "full",
      "launch_monitor": 0,
      "requires": {"min_monitors": 2},

      "ron_file": "multi_window_0_1.ron",

      "windows": {
        "primary": {
          "validate": ["position", "size", "monitor_index", "mode"]
        },
        "window-1": {
          "spawn_event": "restore_window::SpawnManagedWindow",
          "validate": ["position", "size", "monitor_index", "mode"]
        }
      }
    },

    {
      "id": "same_monitor_restore_mon1",
      "description": "Basic position/size persistence on Monitor 1",
      "automation": "full",
      "launch_monitor": 1,

      "ron_file": "same_monitor_restore_mon1.ron",

      "mutation": {
        "target_monitor": "launch",
        "position_offset": [300, 200],
        "size": [1100, 600]
      },

      "windows": {
        "primary": {
          "validate": ["position", "size", "monitor_index", "mode"]
        }
      }
    },

    {
      "id": "multi_window_1_0",
      "description": "Primary on Monitor 1, secondary on Monitor 0",
      "automation": "full",
      "launch_monitor": 1,
      "requires": {"min_monitors": 2},

      "ron_file": "multi_window_1_0.ron",

      "windows": {
        "primary": {
          "validate": ["position", "size", "monitor_index", "mode"]
        },
        "window-1": {
          "spawn_event": "restore_window::SpawnManagedWindow",
          "validate": ["position", "size", "monitor_index", "mode"]
        }
      }
    },

    {
      "id": "multi_window_1_1",
      "description": "Primary on Monitor 1, secondary on Monitor 1",
      "automation": "full",
      "launch_monitor": 1,
      "requires": {"min_monitors": 2},

      "ron_file": "multi_window_1_1.ron",

      "windows": {
        "primary": {
          "validate": ["position", "size", "monitor_index", "mode"]
        },
        "window-1": {
          "spawn_event": "restore_window::SpawnManagedWindow",
          "validate": ["position", "size", "monitor_index", "mode"]
        }
      }
    }
  ]
}