aboutsummaryrefslogtreecommitdiff
path: root/nexgb/examples/randr.go
diff options
context:
space:
mode:
Diffstat (limited to 'nexgb/examples/randr.go')
-rw-r--r--nexgb/examples/randr.go48
1 files changed, 48 insertions, 0 deletions
diff --git a/nexgb/examples/randr.go b/nexgb/examples/randr.go
new file mode 100644
index 0000000..064856d
--- /dev/null
+++ b/nexgb/examples/randr.go
@@ -0,0 +1,48 @@
+package main
+
+import (
+ "fmt"
+ "log"
+
+ "github.com/BurntSushi/xgb"
+)
+
+func main() {
+ X, _ := xgb.NewConn()
+
+ err := X.RegisterExtension("randr")
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ resources, err := X.RandrGetScreenResources(X.DefaultScreen().Root).Reply()
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ for _, output := range resources.Outputs {
+ info, err := X.RandrGetOutputInfo(output, 0).Reply()
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ bestMode := info.Modes[0]
+ for _, mode := range resources.Modes {
+ if mode.Id == uint32(bestMode) {
+ fmt.Printf("Width: %d, Height: %d\n", mode.Width, mode.Height)
+ }
+ }
+ }
+
+ fmt.Println("\n")
+
+ for _, crtc := range resources.Crtcs {
+ info, err := X.RandrGetCrtcInfo(crtc, 0).Reply()
+ if err != nil {
+ log.Fatal(err)
+ }
+ fmt.Printf("X: %d, Y: %d, Width: %d, Height: %d\n",
+ info.X, info.Y, info.Width, info.Height)
+ }
+}
+