排列多個視窗(網格 / 層疊)
snap_window 移動*一個*視窗到一半或四分之一,而 視窗鋪排 / 版面幾何規劃器 規劃器只*計算*矩形、並不移動任何東西。
arrange_grid 與 arrange_cascade 把這個迴圈補完:給定一組視窗標題,計算版面並實際移動每個符合的視窗——
把一組應用程式視窗鋪成網格,或以對角線層疊散開,一次呼叫完成。
它們以版面規劃器取得幾何,並沿用與 snap_window 相同的可注入 mover / screen_size 接縫,因此排列邏輯
完全可在無真實視窗下做單元測試。預設 mover 目前為 Win32(其他平台在其後端完成前為 no-op)。不匯入 PySide6。
無頭 API
from je_auto_control import arrange_grid, arrange_cascade
# 把三個編輯器鋪成自動形狀的網格(此處 2x2,使用前 3 格)。
arrange_grid(["Editor", "Browser", "Terminal"])
# 或明確的 1x3 列,含 8px 間距。
arrange_grid(["Left", "Mid", "Right"], rows=1, cols=3, gap=8)
# 將視窗以對角線散開。
arrange_cascade(["Doc 1", "Doc 2", "Doc 3"], offset=40)
arrange_grid 把 titles 鋪成 rows × cols 網格(預設為依視窗數量的近正方自動形狀),可加 gap;
arrange_cascade 讓每個視窗在前一個的右下方錯位 offset 像素,尺寸為工作區的 60%。兩者都回傳實際移動的
視窗數,並對超出網格容量的視窗保持不動。
執行器命令
AC_arrange_grid``(``titles JSON 陣列 + rows / cols / gap)與 AC_arrange_cascade
(titles + offset),各回傳 {moved, count}。它們以 MCP 工具 ac_arrange_grid / ac_arrange_cascade
(有副作用)以及 Script Builder 中 Window 分類下的命令提供。