hacking-howto: Update 'data structures' section
- Includes updated bigpicture.png from dump-asy.pl script - The X11 root window is not a container - Adds some extra information bigpicture.png is created by converting the .asy to an .eps with `asy bigpicture .eps` and then using the following gs command: gs -dSAFER -dBATCH -dNOPAUSE -dEPSCrop -r600 -sDEVICE=pngalpha -sOutputFile=bigpicture.png bigpicture.eps
This commit is contained in:
@ -246,37 +246,39 @@ A file containing all X11 atoms which i3 uses. This file will be included
|
||||
various times (for defining, requesting and receiving the atoms), each time
|
||||
with a different definition of xmacro().
|
||||
|
||||
|
||||
== Data structures
|
||||
|
||||
See +include/data.h+ for documented data structures. The most important ones are
|
||||
explained here.
|
||||
|
||||
See include/data.h for documented data structures. The most important ones are
|
||||
explained right here.
|
||||
The following picture is generated by the +contrib/dump-asy.pl+ script.
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
// TODO: update image
|
||||
image:bigpicture.png["The Big Picture",width=1000,link="bigpicture.png"]
|
||||
|
||||
image:bigpicture.png[The Big Picture]
|
||||
The hierarchy is:
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
So, the hierarchy is:
|
||||
|
||||
. *X11 root window*, the root container
|
||||
. *Output container* (LVDS1 in this example)
|
||||
. *Content container* (there are also containers for dock windows)
|
||||
. *Workspaces* (Workspace 1 in this example, with horizontal orientation)
|
||||
. *Split container* (vertically split)
|
||||
. *X11 window containers*
|
||||
. *Root container*
|
||||
. *Output containers*: +eDP-1+ in this example and the internal +__i3++ output
|
||||
. *Content and 2 dockarea containers*
|
||||
. *Workspaces*: Numbered workspace ``1'' and a ``Named workspace''
|
||||
. *Split containers*: One horizontal in the first workspace and a tabbed one in
|
||||
the named one.
|
||||
. *Leaf containers*: Windows like vim and an i3bar dock.
|
||||
|
||||
The data type is +Con+, in all cases.
|
||||
|
||||
=== X11 root window
|
||||
=== Root container
|
||||
|
||||
The X11 root window is a single window per X11 display (a display is identified
|
||||
by +:0+ or +:1+ etc.). The root window is what you draw your background image
|
||||
on. It spans all the available outputs, e.g. +VGA1+ is a specific part of the
|
||||
root window and +LVDS1+ is a specific part of the root window.
|
||||
The root container (global variable +croot+) is the up-most ascendant of every i3
|
||||
container. It can be used to iterate over the whole tree structure. E.g., it is
|
||||
used to reply to the +GET_WORKSPACES+ request, iterating over it's children to
|
||||
find all workspaces. This is different from the X11 root window.
|
||||
|
||||
The X11 root window (global variable +root+) is a single window per X11 display
|
||||
(a display is identified by +:0+ or +:1+ etc.). The root window is what you draw
|
||||
your background image on. It spans all the available outputs, e.g. +VGA1+ is a
|
||||
specific part of the root window and +LVDS1+ is a specific part of the root
|
||||
window.
|
||||
|
||||
=== Output container
|
||||
|
||||
@ -298,8 +300,8 @@ currently on.
|
||||
=== Content container
|
||||
|
||||
Each output has multiple children. Two of them are dock containers which hold
|
||||
dock clients. The other one is the content container, which holds the actual
|
||||
content (workspaces) of this output.
|
||||
the top and bottom dock clients. The other one is the content container, which
|
||||
holds the actual content (workspaces) of this output.
|
||||
|
||||
=== Workspace
|
||||
|
||||
@ -318,10 +320,9 @@ vertical) and a layout.
|
||||
Split containers (and X11 window containers, which are a subtype of split
|
||||
containers) can have different border styles.
|
||||
|
||||
=== X11 window container
|
||||
=== Leaf containers
|
||||
|
||||
An X11 window container holds exactly one X11 window. These are the leaf nodes
|
||||
of the layout tree, they cannot have any children.
|
||||
A leaf container holds exactly one X11 window. They can't have any children.
|
||||
|
||||
== List/queue macros
|
||||
|
||||
|
Reference in New Issue
Block a user