...

Command examples

Package examples contains a few different use cases of XGB, like creating a window, reading properties, and querying for information about multiple heads using the Xinerama or RandR extensions.

If you're looking to get started quickly, I recommend checking out the create-window example first. It is the most documented and probably covers some of the more common bare bones cases of creating windows and responding to events.

If you're looking to query information about your window manager, get-active-window is a start. However, to do anything extensive requires a lot of boiler plate. To that end, I'd recommend use of a higher level library (eg. xgbutil: https://github.com/jezek/xgbutil).

There are also examples of using the Xinerama and RandR extensions, if you're interested in querying information about your active heads. In RandR's case, you can also reconfigure your heads, but the example doesn't cover that.

Subdirectories

Name Synopsis
..
atoms
create-window Example create-window shows how to create a window, map it, resize it, and listen to structure and key events (i.e., when the window is resized by the window manager, or when key presses/releases are made when the window has focus).
get-active-window Example get-active-window reads the _NET_ACTIVE_WINDOW property of the root window and uses the result (a window id) to get the name of the window.
randr Example randr uses the randr protocol to get information about the active heads.
shapes The shapes example shows how to draw basic shapes into a window.
xinerama Example xinerama shows how to query the geometry of all active heads.