## 8 Groups ¶

Groups in StumpWM are more commonly known as virtual desktops or workspaces. Why not create a new term for it?

Command: gnew name ¶

  Create a new group with the specified name. The new group becomes the current group. If name begins with a dot (“.”) the group new group will be created in the hidden state. Hidden groups have group numbers less than one and are invisible to from gprev, gnext, and, optionally, groups and vgroups commands.

Command: gnew-float name ¶

  Create a floating window group with the specified name and switch to it.

Command: gnew-dynamic name ¶

  Create a new dynamic group named NAME.

Command: gnewbg name ¶

  Create a new group but do not switch to it.

Command: gnewbg-float name ¶

  Create a floating window group with the specified name, but do not switch to it.

Command: gnewbg-dynamic name ¶

  Create a new dynamic group named NAME in the background.

Command: gnext ¶

  Cycle to the next group in the group list.

Command: gprev ¶

  Cycle to the previous group in the group list.

Command: gnext-with-window ¶

  Cycle to the next group in the group list, taking the current window along.

Command: gprev-with-window ¶

  Cycle to the previous group in the group list, taking the current window along.

Command: gother ¶

  Go back to the last group.

Command: gmerge from ¶

  Merge from into the current group. from is not deleted.

Command: groups &optional fmt ¶

  Default Values:

        fmt  stumpwm:*group-format*

  Display the list of groups with their number and name. *group-format* controls the formatting. The optional argument fmt can be used to override the default group formatting.

Command: vgroups &optional gfmt wfmt ¶

  Default Values:

        gfmt  nil
        wfmt  nil

  Like `groups` but also display the windows in each group. The optional arguments gfmt and wfmt can be used to override the default group formatting and window formatting, respectively.

Command: gselect &optional to-group ¶

  Default Values:

        to-group  nil

  Accepts numbers to select a group, otherwise grouplist selects.

Command: gmove to-group ¶

  Move the current window to the specified group.

Command: gmove-and-follow to-group ¶

  Move the current window to the specified group, and switch to it.

Command: gmove-marked to-group ¶

  move the marked windows to the specified group.

Command: gkill ¶

  Kill the current group. All windows in the current group are migrated to the next group.

Command: gkill-other ¶

  Kill other groups. All windows in other groups are migrated to the current group.

Command: grename name ¶

  Rename the current group.

Command: grouplist &optional fmt ¶

  Default Values:

        fmt  stumpwm:*group-format*

  Allow the user to select a group from a list, like windowlist for groups.

Variable: *list-hidden-groups* ¶

  nil

Variable: *group-top-maps* ¶

  nil

Variable: *default-group-name* ¶

  nil

Function: add-group screen name &key background type ¶

  Default Values:

        background  nil
        type        stumpwm::*default-group-type*

  Create a new group in SCREEN with the supplied name. group names starting with a . are considered hidden groups. Hidden groups are skipped by gprev and gnext and do not show up in the group listings (unless *list-hidden-groups* is T). They also use negative numbers.

Function: group-add-head group head ¶

  A head is being added to this group’s screen.

Function: group-add-window group window &key frame raise &allow-other-keys ¶

  Default Values:

        frame              nil
        raise              nil
        &allow-other-keys  nil

  Called when a window is added to the group. All house keeping is already taken care of. Only the group’s specific window managing housekeeping need be done. This function accepts keys to inform the group on how to place the window.

Function: group-button-press group button x y child ¶

  The user clicked somewhere in the group.

Function: group-current-head group ¶

  The group is asked to return its current head.

Function: group-current-window group ¶

  The group is asked to return its focused window.

Function: group-delete-window group window ¶

  Called when a window is removed from thegroup. All house keeping is already taken care of. Only the group’s specific window managing housekeeping need be done.

Function: group-focus-window group win ¶

  The group is asked to focus the specified window wherever it is.

Function: group-indicate-focus group ¶

  The group is asked to in some way show the user where the keyboard focus is.

Function: group-lost-focus group ¶

  The current window was hidden or destroyed or something happened to it. So the group is asked to do something smart about it.

Function: group-move-request group window x y relative-to ¶

  The window requested a position change.

Function: group-raise-request group window type ¶

  A request has been made to raise the window. TYPE is the type of raise request being made. :MAP means the window has made requested to be mapped. :above means the window has requested to to be placed above its siblings.

Function: group-remove-head group head ¶

  A head is being removed from this group’s screen.

Function: group-before-resize-head group oh nh ¶

  A head is about to be resized on this group’s screen.

Function: group-after-resize-head group head ¶

  A head has been resized on this group’s screen.

Function: group-resize-request group window width height ¶

  The window requested a width and/or height change.

Function: group-root-exposure group ¶

  The root window got an exposure event. If the group needs to redraw anything on it, this is where it should do it.

Function: group-startup group ¶

  Called on all groups while stumpwm is starting up.

Function: group-suspend group ¶

  When the group is no longer the current group, this function is called.

Function: group-sync-all-heads group ¶

  Called when the head configuration for the group changes.

Function: group-sync-head group head ¶

  When a head or its usable area is resized, this is called. When the modeline size changes, this is called.

Function: group-wake-up group ¶

  When the group becomes the current group, this function is called. This call is expected to set the focus.

Function: really-raise-window window ¶

  Really bring the window to the top of the window stack in group

Variable: *run-or-raise-all-groups* ¶

  When this is `T` the `run-or-raise` function searches all groups for a running instance. Set it to NIL to search only the current group.