aboutsummaryrefslogtreecommitdiff
path: root/nexgb/examples/xinerama
diff options
context:
space:
mode:
authorPřemysl Janouch <p@janouch.name>2018-09-08 16:54:17 +0200
committerPřemysl Janouch <p@janouch.name>2018-09-08 16:54:17 +0200
commit3173202cc1e08762c6e156a8fffd23269a5ddb2b (patch)
tree95c4a06f8384d41b15e9c22afac0a387de79dc51 /nexgb/examples/xinerama
parent632b3ae494d45755525644fe5d04475c95aae364 (diff)
parent3906399e7c2a40fbaf355de572cf50a314083f64 (diff)
downloadhaven-3173202cc1e08762c6e156a8fffd23269a5ddb2b.tar.gz
haven-3173202cc1e08762c6e156a8fffd23269a5ddb2b.tar.xz
haven-3173202cc1e08762c6e156a8fffd23269a5ddb2b.zip
Merge aarzilli/xgb, branch xcb1.12 as nexgb
History has been linearized and rewritten to stay under the new subdirectory. I want to make changes incompatible to BurntSushi/xgb. The history begs for being thrown away entirely because of its quality and because it doesn't cover the Google period but it is still useful for copyright tracking.
Diffstat (limited to 'nexgb/examples/xinerama')
-rw-r--r--nexgb/examples/xinerama/main.go40
1 files changed, 40 insertions, 0 deletions
diff --git a/nexgb/examples/xinerama/main.go b/nexgb/examples/xinerama/main.go
new file mode 100644
index 0000000..896bb63
--- /dev/null
+++ b/nexgb/examples/xinerama/main.go
@@ -0,0 +1,40 @@
+// Example xinerama shows how to query the geometry of all active heads.
+package main
+
+import (
+ "fmt"
+ "log"
+
+ "github.com/BurntSushi/xgb"
+ "github.com/BurntSushi/xgb/xinerama"
+)
+
+func main() {
+ X, err := xgb.NewConn()
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ // Initialize the Xinerama extension.
+ // The appropriate 'Init' function must be run for *every*
+ // extension before any of its requests can be used.
+ err = xinerama.Init(X)
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ // Issue a request to get the screen information.
+ reply, err := xinerama.QueryScreens(X).Reply()
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ // reply.Number is the number of active heads, while reply.ScreenInfo
+ // is a slice of XineramaScreenInfo containing the rectangle geometry
+ // of each head.
+ fmt.Printf("Number of heads: %d\n", reply.Number)
+ for i, screen := range reply.ScreenInfo {
+ fmt.Printf("%d :: X: %d, Y: %d, Width: %d, Height: %d\n",
+ i, screen.XOrg, screen.YOrg, screen.Width, screen.Height)
+ }
+}