49 lines
878 B
Go
49 lines
878 B
Go
|
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)
|
||
|
}
|
||
|
}
|
||
|
|