視窗鋪排 / 版面幾何規劃器

save_window_layout / restore_window_layout``擷取並重播使用者已經排好的*精確*位置,``snap_window 把*一個* 視窗移到一半或四分之一。沒有任何功能能*計算*出全新的多視窗版面。tile_rectgrid_rectscascade_rects 是純幾何規劃器:給定螢幕工作區,回傳常見鋪排版面的目標矩形——左右半、四分之一、三分之一、R×C 網格、錯位層疊—— 讓腳本能以決定性方式排列應用程式視窗。

此規劃器跨平台且無裝置相依,因此完全可單元測試;它回傳的矩形可與任何視窗移動後端組合。不匯入 PySide6

無頭 API

from je_auto_control import tile_rect, grid_rects, cascade_rects

left = tile_rect((0, 0, 1920, 1080), "left_third", gap=8)
print(left.as_tuple())                  # (8, 8, 624, 1064)

for cell in grid_rects((0, 0, 1920, 1080), rows=2, cols=3):
    window_move("Editor", *cell.as_tuple())   # 6 格網格

plan = cascade_rects((0, 0, 1920, 1080), count=4, offset=40)

tile_rect 為具名 slot 回傳 WindowRect``(``x, y, width, height,含 .as_tuple().to_dict()) ——見 available_slots`(``left`()top_rightcenterleft_third …);``gap`` 內縮各邊作為鋪排間距。 grid_rectsrows × cols 網格的每格(列優先)回傳一個矩形。cascade_rects 回傳 count 個錯位、 重疊且被夾在螢幕內的矩形(size 預設為工作區的 60%)。未知 slot / 非正網格維度會丟出 ValueError

執行器命令

AC_tile_rect``(``slot / screen / gap{rect})、AC_grid_rects``(``rows / cols / screen / gap{count, rects})與 AC_cascade_rects``(``count / screen / offset / size{count, rects})。screen 預設為實際主螢幕工作區。它們以 MCP 工具 ac_tile_rect / ac_grid_rects / ac_cascade_rects 以及 Script Builder 中 Window 分類下的命令提供。