func query(X *xgbutil.XUtil) xinerama.Heads { if X.ExtInitialized("XINERAMA") { heads, err := xinerama.PhysicalHeads(X) if err != nil || len(heads) == 0 { if err == nil { logger.Warning.Printf("Could not find any physical heads " + "with the Xinerama extension.") } else { logger.Warning.Printf("Could not load physical heads via "+ "Xinerama: %s", err) } logger.Warning.Printf("Assuming one head with size equivalent " + "to the root window.") } else { return heads } } // If we're here, then something went wrong or the Xinerama extension // isn't available. So query the root window for its geometry and use that. rgeom := xwindow.RootGeometry(X) return xinerama.Heads{ xrect.New(rgeom.X(), rgeom.Y(), rgeom.Width(), rgeom.Height()), } }
func headGeom(X *xgbutil.XUtil) xrect.Rect { if X.ExtInitialized("XINERAMA") { heads, err := xinerama.PhysicalHeads(X) if err == nil { return heads[0] } } geom, err := xwindow.New(X, X.RootWin()).Geometry() fatal(err) return geom }