aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/BurntSushi/xgbutil/ewmh/doc.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/BurntSushi/xgbutil/ewmh/doc.go')
-rw-r--r--vendor/github.com/BurntSushi/xgbutil/ewmh/doc.go56
1 files changed, 56 insertions, 0 deletions
diff --git a/vendor/github.com/BurntSushi/xgbutil/ewmh/doc.go b/vendor/github.com/BurntSushi/xgbutil/ewmh/doc.go
new file mode 100644
index 0000000..6e7506a
--- /dev/null
+++ b/vendor/github.com/BurntSushi/xgbutil/ewmh/doc.go
@@ -0,0 +1,56 @@
+/*
+Package ewmh provides a comprehensive API to get and set properties specified
+by the EWMH spec, as well as perform actions specified by the EWMH spec.
+
+Since there are so many functions and they adhere to an existing spec,
+this package file does not contain much documentation. Indeed, each
+method has only a single comment associated with it: the EWMH property name.
+
+The idea is to
+provide a consistent interface to use all facilities described in the EWMH
+spec: http://standards.freedesktop.org/wm-spec/wm-spec-latest.html.
+
+Naming scheme
+
+Using "_NET_ACTIVE_WINDOW" as an example,
+functions "ActiveWindowGet" and "ActiveWindowSet" get and set the
+property, respectively. Both of these functions exist for most EWMH
+properties. Additionally, some EWMH properties support sending a client
+message event to request the window manager to perform some action. In the
+case of "_NET_ACTIVE_WINDOW", this request is used to set the active
+window.
+
+These sorts of functions end in "Req". So for "_NET_ACTIVE_WINDOW",
+the method name is "ActiveWindowReq". Moreover, most requests include
+various parameters that don't need to be changed often (like the source
+indication). Thus, by default, functions ending in "Req" force these to
+sensible defaults. If you need access to all of the parameters, use the
+corresponding "ReqExtra" method. So for "_NET_ACTIVE_WINDOW", that would
+be "ActiveWindowReqExtra". (If no "ReqExtra" method exists, then the
+"Req" method covers all available parameters.)
+
+This naming scheme has one exception: if a property's only use is through
+sending an event (like "_NET_CLOSE_WINDOW"), then the name will be
+"CloseWindow" for the short-hand version and "CloseWindowExtra"
+for access to all of the parameters. (Since there is no "_NET_CLOSE_WINDOW"
+property, there is no need for "CloseWindowGet" and "CloseWindowSet"
+functions.)
+
+For properties that store more than just a simple integer, name or list
+of integers, structs have been created and exposed to organize the
+information returned in a sensible manner. For example, the
+"_NET_DESKTOP_GEOMETRY" property would typically return a slice of integers
+of length 2, where the first integer is the width and the second is the
+height. Xgbutil will wrap this in a struct with the obvious members. These
+structs are documented.
+
+Finally, functions ending in "*Set" are typically only used when setting
+properties on clients *you've* created or when the window manager sets
+properties. Thus, it's unlikely that you should use them unless you're
+creating a top-level client or building a window manager.
+
+Functions ending in "Get" or "Req[Extra]" are commonly used.
+
+N.B. Not all properties have "*Req" functions.
+*/
+package ewmh