[[doc_cls_root]]


=== clients: [[doc_cls_clientmanager]]
The managed windows. For every (managed) window id there is an entry here.

     * *+[entryname]#dragged#+*: the object of a client which is currently dragged by the mouse, if any. See the documentation of the mousebind command for examples. For attributes and children, see <<doc_cls_client,+clients.focus+>>
     * *+[entryname]#focus#+*: the focused client (only exists if a client is focused). [[doc_cls_client]]a managed window

       ** '[datatype]#string#' *+[entryname]#class#+*: the class of it (second entry in WM_CLASS)
       ** '[datatype]#Rectangle#' *+[entryname]#content_geometry#+*: the geometry of the application content, that is, not taking the decoration into account. Also, this is the last window geometry that was reported to the client application.
       ** '[datatype]#bool#' *+[entryname]#ewmhnotify#+* [defaultvalue]#= true#: if the client is told about its state via ewmh
       ** '[datatype]#bool#' *+[entryname]#ewmhrequests#+* [defaultvalue]#= true#: if ewmh requests are permitted for this client
       ** '[datatype]#bool#' *+[entryname]#floating#+* [defaultvalue]#= false#: whether this client is floated above the tiled clients.
       ** '[datatype]#Rectangle#' *+[entryname]#floating_geometry#+* [defaultvalue]#= 0#: the geometry of the client content if the client is in floating mode. The position is relative to the monitor and does not take the window decoration into account.
       ** '[datatype]#bool#' *+[entryname]#fullscreen#+* [defaultvalue]#= false#: whether this client covers all other windows and panels on its monitor.
       ** '[datatype]#string#' *+[entryname]#instance#+*: the instance of it (first entry in WM_CLASS)
       ** '[datatype]#regex#' *+[entryname]#keymask#+* [defaultvalue]#= ""#: A regular expression that is matched against the string representation of all key bindings (as they are printed by list_keybinds). While this client is focused, only bindings that match the expression will be active. Any other bindings will be disabled. The default keymask is an empty string (), which does not disable any keybinding.
       ** '[datatype]#regex#' *+[entryname]#keys_inactive#+* [defaultvalue]#= ""#: A regular expression that describes which keybindings are inactive while the client is focused. If a key combination is pressed and its string representation (as given by list_keybinds) matches the regex, then the key press is propagated to the client.
       ** '[datatype]#bool#' *+[entryname]#minimized#+* [defaultvalue]#= false#: whether this client is minimized (also called iconified).
       ** '[datatype]#int#' *+[entryname]#pgid#+* [defaultvalue]#= -1#
       ** '[datatype]#int#' *+[entryname]#pid#+* [defaultvalue]#= -1#: the process id of it (-1 if unset).
       ** '[datatype]#bool#' *+[entryname]#pseudotile#+* [defaultvalue]#= false#: if activated, the client always has its floating window size, even if it is in tiling mode.
       ** '[datatype]#bool#' *+[entryname]#sizehints_floating#+* [defaultvalue]#= true#: if sizehints for this client should be respected in floating mode
       ** '[datatype]#bool#' *+[entryname]#sizehints_tiling#+* [defaultvalue]#= false#: if sizehints for this client should be respected in tiling mode
       ** '[datatype]#string#' *+[entryname]#tag#+*: the name of the tag it's currently on.
       ** '[datatype]#string#' *+[entryname]#title#+* [defaultvalue]#= ""#: its window title
       ** '[datatype]#bool#' *+[entryname]#urgent#+* [defaultvalue]#= false#: the urgency state (also known as: demands attention)
       ** '[datatype]#bool#' *+[entryname]#visible#+* [defaultvalue]#= visible_already#: whether this client is rendered currently
       ** '[datatype]#string#' *+[entryname]#winid#+* [defaultvalue]#= ""#: its window id (as a hexadecimal number with 0x prefix)
       ** *+[entryname]#parent_frame#+*: the frame contaning this client if the client is tiled. For attributes and children, see <<doc_cls_frameleaf,+tags.focus.tiling.root+>>

=== monitors: [[doc_cls_monitormanager]]
Every monitor is a rectangular part of the screen on which a tag is shown. These monitors may or may not match the actual outputs.
This has an entry '+++INDEX+++' for each monitor with index '+++INDEX+++'.

     * '[datatype]#uint#' *+[entryname]#count#+*
     * *+[entryname]#by-name#+*: [[doc_cls_byname]]This has an entry '+++name+++' for every object with the given '+++name+++'. If an object has an empty name then it is not listed here.

     * *+[entryname]#focus#+*: the focused monitor. [[doc_cls_monitor]]The monitor is a rectangular part on the screen that holds precisely one tag at a time. The pad attributes reserve space on the monitor's edge for panels, so this space (given in number of pixels) is never occupied by tiled clients.

       ** '[datatype]#Rectangle#' *+[entryname]#geometry#+* [defaultvalue]#= rect_#: the outer geometry of the monitor
       ** '[datatype]#uint#' *+[entryname]#index#+* [defaultvalue]#= 0#: the monitor's index (starts at index 0)
       ** '[datatype]#bool#' *+[entryname]#lock_tag#+* [defaultvalue]#= false#: if activated, then it it is not possible to switch this monitor to a different tag.
       ** '[datatype]#string#' *+[entryname]#name#+* [defaultvalue]#= ""#: the monitor's name (can be empty)
       ** '[datatype]#int#' *+[entryname]#pad_down#+* [defaultvalue]#= 0#: space for panels at the monitor's lower edge
       ** '[datatype]#int#' *+[entryname]#pad_left#+* [defaultvalue]#= 0#: space for panels at the monitor's left edge
       ** '[datatype]#int#' *+[entryname]#pad_right#+* [defaultvalue]#= 0#: space for panels at the monitor's right edge
       ** '[datatype]#int#' *+[entryname]#pad_up#+* [defaultvalue]#= 0#: space for panels at the monitor's upper edge
       ** '[datatype]#string#' *+[entryname]#tag#+*: the name of the tag viewed here

=== panels: [[doc_cls_panelmanager]]
For every panel window, there is an entry with the panel's window id here.

     * '[datatype]#uint#' *+[entryname]#count#+*
     * '[entryname]#0xWindowID#': [[doc_cls_panel]]a panel is an unmanaged window that reserves space at the edge of the monitor it is on. The space depends on the _NET_WM_STRUT defined by the panel. If it is however not defined explicitly, then the amount of reserved space is inferred from the window geometry.

       ** '[datatype]#string#' *+[entryname]#class#+*: the window class (second entry of WM_CLASS)
       ** '[datatype]#Rectangle#' *+[entryname]#geometry#+*: the size and position of the window
       ** '[datatype]#string#' *+[entryname]#instance#+*: the window instance (first entry of WM_CLASS)
       ** '[datatype]#WindowID#' *+[entryname]#winid#+* [defaultvalue]#= winid#: the ID of the panel window

=== settings: [[doc_cls_settings]]
This has an attribute for each setting. Many settings are wrappers around attributes and only exist for compatibility.

     * '[datatype]#bool#' *+[entryname]#always_show_frame#+* [defaultvalue]#= false#
     * '[datatype]#bool#' *+[entryname]#auto_detect_monitors#+* [defaultvalue]#= false#
     * '[datatype]#bool#' *+[entryname]#auto_detect_panels#+* [defaultvalue]#= true#
     * '[datatype]#bool#' *+[entryname]#default_direction_external_only#+* [defaultvalue]#= false#
     * '[datatype]#LayoutAlgorithm#' *+[entryname]#default_frame_layout#+* [defaultvalue]#= vertical#
     * '[datatype]#bool#' *+[entryname]#focus_crosses_monitor_boundaries#+* [defaultvalue]#= true#
     * '[datatype]#bool#' *+[entryname]#focus_follows_mouse#+* [defaultvalue]#= false#
     * '[datatype]#bool#' *+[entryname]#focus_stealing_prevention#+* [defaultvalue]#= true#
     * '[datatype]#int#' *+[entryname]#frame_active_opacity#+* [defaultvalue]#= 100#
     * '[datatype]#color#' *+[entryname]#frame_bg_active_color#+* [defaultvalue]#= black#
     * '[datatype]#color#' *+[entryname]#frame_bg_normal_color#+* [defaultvalue]#= black#
     * '[datatype]#bool#' *+[entryname]#frame_bg_transparent#+* [defaultvalue]#= false#
     * '[datatype]#color#' *+[entryname]#frame_border_active_color#+* [defaultvalue]#= red#
     * '[datatype]#color#' *+[entryname]#frame_border_inner_color#+* [defaultvalue]#= black#
     * '[datatype]#int#' *+[entryname]#frame_border_inner_width#+* [defaultvalue]#= 0#
     * '[datatype]#color#' *+[entryname]#frame_border_normal_color#+* [defaultvalue]#= blue#
     * '[datatype]#int#' *+[entryname]#frame_border_width#+* [defaultvalue]#= 2#
     * '[datatype]#int#' *+[entryname]#frame_gap#+* [defaultvalue]#= 5#
     * '[datatype]#int#' *+[entryname]#frame_normal_opacity#+* [defaultvalue]#= 100#
     * '[datatype]#int#' *+[entryname]#frame_padding#+* [defaultvalue]#= 0#
     * '[datatype]#int#' *+[entryname]#frame_transparent_width#+* [defaultvalue]#= 0#
     * '[datatype]#bool#' *+[entryname]#gapless_grid#+* [defaultvalue]#= true#
     * '[datatype]#bool#' *+[entryname]#hide_covered_windows#+* [defaultvalue]#= false#
     * '[datatype]#uint#' *+[entryname]#monitors_locked#+* [defaultvalue]#= 0#
     * '[datatype]#int#' *+[entryname]#mouse_recenter_gap#+* [defaultvalue]#= 0#
     * '[datatype]#int#' *+[entryname]#pseudotile_center_threshold#+* [defaultvalue]#= 10#
     * '[datatype]#bool#' *+[entryname]#raise_on_click#+* [defaultvalue]#= true#
     * '[datatype]#bool#' *+[entryname]#raise_on_focus#+* [defaultvalue]#= false#
     * '[datatype]#bool#' *+[entryname]#raise_on_focus_temporarily#+* [defaultvalue]#= false#
     * '[datatype]#bool#' *+[entryname]#smart_frame_surroundings#+* [defaultvalue]#= false#
     * '[datatype]#bool#' *+[entryname]#smart_window_surroundings#+* [defaultvalue]#= false#
     * '[datatype]#int#' *+[entryname]#snap_distance#+* [defaultvalue]#= 10#
     * '[datatype]#int#' *+[entryname]#snap_gap#+* [defaultvalue]#= 5#
     * '[datatype]#bool#' *+[entryname]#swap_monitors_to_get_tag#+* [defaultvalue]#= true#
     * '[datatype]#string#' *+[entryname]#tree_style#+* [defaultvalue]#= "*| +`--."#
     * '[datatype]#bool#' *+[entryname]#update_dragged_clients#+* [defaultvalue]#= false#
     * '[datatype]#bool#' *+[entryname]#verbose#+* [defaultvalue]#= false#
     * '[datatype]#color#' *+[entryname]#window_border_active_color#+*
     * '[datatype]#color#' *+[entryname]#window_border_inner_color#+*
     * '[datatype]#int#' *+[entryname]#window_border_inner_width#+*
     * '[datatype]#color#' *+[entryname]#window_border_normal_color#+*
     * '[datatype]#color#' *+[entryname]#window_border_urgent_color#+*
     * '[datatype]#int#' *+[entryname]#window_border_width#+*
     * '[datatype]#int#' *+[entryname]#window_gap#+* [defaultvalue]#= 0#
     * '[datatype]#string#' *+[entryname]#wmname#+* [defaultvalue]#= herbstluftwm#

=== tags: [[doc_cls_tagmanager]]
The tags (or virtual desktops or workspaces). This contains  an entry '+++index+++' for each tag with the given '+++index+++'.

     * '[datatype]#uint#' *+[entryname]#count#+*
     * *+[entryname]#by-name#+*: For attributes and children, see <<doc_cls_byname,+monitors.by-name+>>
     * *+[entryname]#focus#+*: the object of the focused tag, equivalently, the tag on the focused monitor. [[doc_cls_hstag]]
       ** '[datatype]#int#' *+[entryname]#client_count#+*: the number of clients on this tag
       ** '[datatype]#int#' *+[entryname]#curframe_wcount#+*: number of clients in the selected frame
       ** '[datatype]#int#' *+[entryname]#curframe_windex#+*: index of the focused client in the selected frame
       ** '[datatype]#bool#' *+[entryname]#floating#+* [defaultvalue]#= false#: if the entire tag is set to floating mode
       ** '[datatype]#bool#' *+[entryname]#floating_focused#+* [defaultvalue]#= false#: if the floating layer is focused (otherwise the tiling layer is)
       ** '[datatype]#int#' *+[entryname]#frame_count#+*: the number of frames on this tag
       ** '[datatype]#uint#' *+[entryname]#index#+* [defaultvalue]#= 0#: index of this tag (the first index is 0)
       ** '[datatype]#string#' *+[entryname]#name#+* [defaultvalue]#= name_#: name of the tag (must be non-empty)
       ** '[datatype]#int#' *+[entryname]#urgent_count#+*: the number of urgent clients on this tag
       ** '[datatype]#bool#' *+[entryname]#visible#+* [defaultvalue]#= false#: if this tag is shown on some monitor
       ** *+[entryname]#focused_client#+*: For attributes and children, see <<doc_cls_client,+clients.focus+>>
       ** *+[entryname]#tiling#+*: [[doc_cls_frametree]]
         *** *+[entryname]#focused_frame#+*: The focused frame (leaf) in this frame tree. For attributes and children, see <<doc_cls_frameleaf,+tags.focus.tiling.root+>>
         *** *+[entryname]#root#+* can be a  frame leaf.  [[doc_cls_frameleaf]]
           **** '[datatype]#LayoutAlgorithm#' *+[entryname]#algorithm#+*
           **** '[datatype]#int#' *+[entryname]#client_count#+*
           **** '[datatype]#string#' *+[entryname]#index#+*
           **** '[datatype]#int#' *+[entryname]#selection#+*
         *** *+[entryname]#root#+* can be a  frame split.  [[doc_cls_framesplit]]
           **** '[datatype]#decimal#' *+[entryname]#fraction#+*
           **** '[datatype]#string#' *+[entryname]#index#+*
           **** '[datatype]#int#' *+[entryname]#selection#+*
           **** '[datatype]#SplitAlign#' *+[entryname]#split_type#+*
           **** *+[entryname]#0#+* can be a  frame leaf.  For attributes and children, see <<doc_cls_frameleaf,+tags.focus.tiling.root+>>
           **** *+[entryname]#0#+* can be a  frame split.  For attributes and children, see <<doc_cls_framesplit,+tags.focus.tiling.root+>>
           **** *+[entryname]#1#+* can be a  frame leaf.  For attributes and children, see <<doc_cls_frameleaf,+tags.focus.tiling.root+>>
           **** *+[entryname]#1#+* can be a  frame split.  For attributes and children, see <<doc_cls_framesplit,+tags.focus.tiling.root+>>

=== theme: [[doc_cls_theme]]
    inner_color/inner_width
          ╻        outer_color/outer_width
          │                  ╻
          │                  │
    ┌────╴│╶─────────────────┷─────┐ ⎫ border_width
    │     │      color             │ ⎬ + title_height
    │  ┌──┷─────────────────────┐  │ ⎭ + padding_top
    │  │====================....│  │
    │  │== window content ==....│  │
    │  │====================..╾──────── background_color
    │  │........................│  │
    │  └────────────────────────┘  │ ⎱ border_width +
    └──────────────────────────────┘ ⎰ padding_bottom

Setting an attribute of the theme object just propagates the value to the respective attribute of the +tiling+ and the +floating+ object.

     * '[datatype]#color#' *+[entryname]#background_color#+* [defaultvalue]#= black#
     * '[datatype]#uint#' *+[entryname]#border_width#+* [defaultvalue]#= 0#
     * '[datatype]#color#' *+[entryname]#color#+* [defaultvalue]#= black#
     * '[datatype]#color#' *+[entryname]#inner_color#+* [defaultvalue]#= black#
     * '[datatype]#uint#' *+[entryname]#inner_width#+* [defaultvalue]#= 0#
     * '[datatype]#color#' *+[entryname]#outer_color#+* [defaultvalue]#= black#
     * '[datatype]#uint#' *+[entryname]#outer_width#+* [defaultvalue]#= 0#
     * '[datatype]#uint#' *+[entryname]#padding_bottom#+* [defaultvalue]#= 0#
     * '[datatype]#uint#' *+[entryname]#padding_left#+* [defaultvalue]#= 0#
     * '[datatype]#uint#' *+[entryname]#padding_right#+* [defaultvalue]#= 0#
     * '[datatype]#uint#' *+[entryname]#padding_top#+* [defaultvalue]#= 0#
     * '[datatype]#string#' *+[entryname]#reset#+*: writing this resets all attributes to a default value
     * '[datatype]#bool#' *+[entryname]#tight_decoration#+* [defaultvalue]#= false#
     * '[datatype]#color#' *+[entryname]#title_color#+* [defaultvalue]#= black#
     * '[datatype]#font#' *+[entryname]#title_font#+* [defaultvalue]#= fixed#
     * '[datatype]#uint#' *+[entryname]#title_height#+* [defaultvalue]#= 0#
     * *+[entryname]#active#+*: configures the decoration of the focused client. [[doc_cls_decorationscheme]]
       ** '[datatype]#color#' *+[entryname]#background_color#+* [defaultvalue]#= black#
       ** '[datatype]#uint#' *+[entryname]#border_width#+* [defaultvalue]#= 0#
       ** '[datatype]#color#' *+[entryname]#color#+* [defaultvalue]#= black#
       ** '[datatype]#color#' *+[entryname]#inner_color#+* [defaultvalue]#= black#
       ** '[datatype]#uint#' *+[entryname]#inner_width#+* [defaultvalue]#= 0#
       ** '[datatype]#color#' *+[entryname]#outer_color#+* [defaultvalue]#= black#
       ** '[datatype]#uint#' *+[entryname]#outer_width#+* [defaultvalue]#= 0#
       ** '[datatype]#uint#' *+[entryname]#padding_bottom#+* [defaultvalue]#= 0#
       ** '[datatype]#uint#' *+[entryname]#padding_left#+* [defaultvalue]#= 0#
       ** '[datatype]#uint#' *+[entryname]#padding_right#+* [defaultvalue]#= 0#
       ** '[datatype]#uint#' *+[entryname]#padding_top#+* [defaultvalue]#= 0#
       ** '[datatype]#string#' *+[entryname]#reset#+*: writing this resets all attributes to a default value
       ** '[datatype]#bool#' *+[entryname]#tight_decoration#+* [defaultvalue]#= false#
       ** '[datatype]#color#' *+[entryname]#title_color#+* [defaultvalue]#= black#
       ** '[datatype]#font#' *+[entryname]#title_font#+* [defaultvalue]#= fixed#
       ** '[datatype]#uint#' *+[entryname]#title_height#+* [defaultvalue]#= 0#
     * *+[entryname]#floating#+*: behaves analogously to +tiling+. [[doc_cls_dectriple]]
       ** '[datatype]#color#' *+[entryname]#background_color#+* [defaultvalue]#= black#
       ** '[datatype]#uint#' *+[entryname]#border_width#+* [defaultvalue]#= 0#
       ** '[datatype]#color#' *+[entryname]#color#+* [defaultvalue]#= black#
       ** '[datatype]#color#' *+[entryname]#inner_color#+* [defaultvalue]#= black#
       ** '[datatype]#uint#' *+[entryname]#inner_width#+* [defaultvalue]#= 0#
       ** '[datatype]#color#' *+[entryname]#outer_color#+* [defaultvalue]#= black#
       ** '[datatype]#uint#' *+[entryname]#outer_width#+* [defaultvalue]#= 0#
       ** '[datatype]#uint#' *+[entryname]#padding_bottom#+* [defaultvalue]#= 0#
       ** '[datatype]#uint#' *+[entryname]#padding_left#+* [defaultvalue]#= 0#
       ** '[datatype]#uint#' *+[entryname]#padding_right#+* [defaultvalue]#= 0#
       ** '[datatype]#uint#' *+[entryname]#padding_top#+* [defaultvalue]#= 0#
       ** '[datatype]#string#' *+[entryname]#reset#+*: writing this resets all attributes to a default value
       ** '[datatype]#bool#' *+[entryname]#tight_decoration#+* [defaultvalue]#= false#
       ** '[datatype]#color#' *+[entryname]#title_color#+* [defaultvalue]#= black#
       ** '[datatype]#font#' *+[entryname]#title_font#+* [defaultvalue]#= fixed#
       ** '[datatype]#uint#' *+[entryname]#title_height#+* [defaultvalue]#= 0#
       ** *+[entryname]#active#+*: configures the decoration of the focused client. For attributes and children, see <<doc_cls_decorationscheme,+theme.active+>>
       ** *+[entryname]#normal#+*: the default decoration scheme for clients. For attributes and children, see <<doc_cls_decorationscheme,+theme.active+>>
       ** *+[entryname]#urgent#+*: configures the decoration of urgent clients. For attributes and children, see <<doc_cls_decorationscheme,+theme.active+>>
     * *+[entryname]#fullscreen#+*: configures clients in fullscreen state. For attributes and children, see <<doc_cls_dectriple,+theme.floating+>>
     * *+[entryname]#minimal#+*: configures clients with minimal decorations triggered by +smart_window_surroundings+. For attributes and children, see <<doc_cls_dectriple,+theme.floating+>>
     * *+[entryname]#normal#+*: the default decoration scheme for clients. For attributes and children, see <<doc_cls_decorationscheme,+theme.active+>>
     * *+[entryname]#tiling#+*: configures the decoration of tiled clients, setting one of its attributes propagates the respective attribute of the +active+, +normal+ and +urgent+ child objects. For attributes and children, see <<doc_cls_dectriple,+theme.floating+>>
     * *+[entryname]#urgent#+*: configures the decoration of urgent clients. For attributes and children, see <<doc_cls_decorationscheme,+theme.active+>>

=== types: [[doc_cls_typesdoc]]
This lists the types that are used for attributes and command arguments.

     * *+[entryname]#bool#+*: Type representing boolean values, i.e. an '+++on+++' or '+++off+++' state, with aliases '+++true+++' and '+++false+++'. When writing to a boolean value, one can also specify '+++toggle+++' in order to alter its value. [[doc_cls_typedesc]]
       ** '[datatype]#string#' *+[entryname]#fullname#+*: the full and unique name of this type
       ** '[datatype]#string#' *+[entryname]#shortname#+*: A short (one-character long) name of this type which is used in the output of the '+++attr+++' command
     * *+[entryname]#color#+*: Type representing colors.
A color can be defined in one of the following formats:
1. #RRGGBB where R, G, B are hexidecimal digits (0-9, A-F),
   and RR, GG, BB represent the values for red, green, blue.
2. #RRGGBBAA represents a color with alpha-value AA.
   The alpha value 00 is fully transparent and FF is fully
   opaque/intransparent.
3. a common color name like '+++red+++', '+++blue,+++' '+++orange+++', etc. For attributes and children, see <<doc_cls_typedesc,+types.bool+>>
     * *+[entryname]#decimal#+*: Fixed precision decimal numbers, e.g. 0.34. For attributes and children, see <<doc_cls_typedesc,+types.bool+>>
     * *+[entryname]#font#+*: A font specification (font family with modifiers regarding size, weight, etc.) in one of the following formats:

- Fontconfig description. This supports antialiased fonts,
  for example:
  ** '+++Dejavu Sans:pixelsize=12+++'
  ** '+++Bitstream Vera Sans:size=12:bold+++'

- X logical font description (XLFD), as provided by the
  xfontsel tool. No antialiasing is supported here, but this
  is usually superior for bitmap fonts. For example:
  ** '+++-*-fixed-medium-r-*-*-13-*-*-*-*-*-*-*+++' for a standard 
    bitmap font available on most systems. For attributes and children, see <<doc_cls_typedesc,+types.bool+>>
     * *+[entryname]#int#+*: Type representing signed integers.
When overwriting an integer, you can increase or decrease its value relatively by writing '++++=N+++' or '+++-=N+++' where N is an integer. So for example, writing '++++=3+++' to an attribute increases its value by 3. For attributes and children, see <<doc_cls_typedesc,+types.bool+>>
     * *+[entryname]#names#+*: A fixed set of names, depending on the context, e.g. names of layout algorithms or the split type of a non-leaf frame (which is only '+++horizontal+++' or '+++vertical+++'). For attributes and children, see <<doc_cls_typedesc,+types.bool+>>
     * *+[entryname]#rectangle#+*: A rectangle on the screen consisting of a size and the position on the screen. The format is WxH+X+Y where W is the width, H is the height, and X and Y are the coordinates of the top left corner of the rectangle: X is the number of pixels to the left screen edge and Y is the number of pixels to the top screen edge. (if X or Y is negative, then the + turns into -). For example: 800x600+800+0 or 400x200-10+30. For attributes and children, see <<doc_cls_typedesc,+types.bool+>>
     * *+[entryname]#regex#+*: A POSIX extended regular expression. Note that when passing a regex on the command line, additional quoting can be necessary. For explanations and examples, see section 9.4.6 of the documentation: https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html#tag_09_04_06. For attributes and children, see <<doc_cls_typedesc,+types.bool+>>
     * *+[entryname]#string#+*: Type representing normal text. For attributes and children, see <<doc_cls_typedesc,+types.bool+>>
     * *+[entryname]#uint#+*: Type representing unsigned (i.e. non-negative) integers.
When overwriting an integer, you can increase or decrease its value relatively by writing '++++=N+++' or '+++-=N+++' where N is an integer. For attributes and children, see <<doc_cls_typedesc,+types.bool+>>
     * *+[entryname]#windowid#+*: The window id is the number of a window. This can be a managed window (i.e. client) or an unmanaged window (e.g. a panel, a menu, or a desktop window).
The default format is 0xHEX where HEX is a hexadecimal number (digits 0-9 and a-f) but it can also be specified in the decimal system (base 10), or as an octal number (with prefix 0 and base 8).
When a window id is printed, it is always printed in the 0xHEX format and without any leading zeroes. For attributes and children, see <<doc_cls_typedesc,+types.bool+>>

=== watchers: [[doc_cls_watchers]]

     * '[datatype]#uint#' *+[entryname]#count#+*: the number of attributes that are watched
