#### 1.3.4 Dynamic Group Basics ¶

Within a dynamic group, windows are organized into a master window and a window stack, with one of each per head. When a new window is added to a head within a dynamic group, that heads master window is pushed onto that heads window stack, and the new window becomes the master window. When a head becomes to full (ie more windows cannot be placed upon the stack) a overflow policy is used to determine which window to move to a separate head or group.

Command: gnew-dynamic name ¶

  Create a new dynamic group named NAME.

Command: gnewbg-dynamic name ¶

  Create a new dynamic group named NAME in the background.

Command: rotate-windows direction ¶

  Rotate all windows in the current group and head forward (clockwise) or backward (counterclockwise)

Command: change-layout layout ¶

  Change the layout of the current head and group.

Command: change-default-layout layout &optional update-heads ¶

  Default Values:

        update-heads  :unset

  Change the default layout for dynamic groups.

Command: change-split-ratio ratio ¶

  Change the size of the master window of the current head and group.

Command: change-default-split-ratio ratio &optional update-heads ¶

  Default Values:

        update-heads  :unset

  Change the default size of the master window for dynamic groups.

Command: retile &optional retile-floats ¶

  Default Values:

        retile-floats  t

  Force a retile of all windows.

Command: select-floating-window &optional fmt window-list ¶

  Default Values:

        fmt          stumpwm:*window-format*
        window-list  nil

  Select a floating window from a menu.

Variable: *rotation-focus-policy* ¶

  A keyword determining what frame to focus after rotating the windows in a dynamic group. Valid values are: :PRESERVE, meaning to stay on the same frame :FOLLOW, meaning to follow the current window as it rotates :MASTER, meaning to always stay to the master :MASTER-OR-FOLLOW, meaning to stay on the master, or if initiating the rotation while focused on a stack window to follow that window.

When defining commands, anything restricted to tiling groups will also be active in dynamic groups. To fully restrict it to tiling groups, call the function dyn-blacklist-command on the command in question.

The head placement policy, overflow policy, master layout, and default split ratio of dynamic groups are special in that they can only be modified once a dynamic group object has been instantiated. To change their initial values the function `set-dynamic-group-initial-values` can be used to modify these values before instantiating a dynamic group, but not after.