LINUX.ORG.RU

История изменений

Исправление beastie, (текущая версия) :

Вот тебе минимальный пример на Go. На пистон сам переложишь.

package main

import (
	"log"
	"os"
	"time"

	"github.com/BurntSushi/xgb"
	"github.com/BurntSushi/xgb/screensaver"
	"github.com/BurntSushi/xgb/xproto"
)

func main() {
	conn, err := xgb.NewConnDisplay(os.Getenv("DISPLAY"))
	if err != nil {
		log.Fatal(err)
	}
	defer conn.Close()
	if err := screensaver.Init(conn); err != nil {
		log.Fatal(err)
	}
	root := xproto.Setup(conn).DefaultScreen(conn).Root
	for range time.Tick(time.Second) {
		info, err := screensaver.QueryInfo(conn, xproto.Drawable(root)).Reply()
		if err != nil {
			log.Fatal(err)
		}
		log.Println(time.Duration(info.MsSinceUserInput) * time.Millisecond)
	}
}

PS: тут уже готовое, что ты пытаешься сделать.

Исходная версия beastie, :

Вот тебе минимальный пример на Go. На пистон сам переложишь.

package main

import (
	"log"
	"os"
	"time"

	"github.com/BurntSushi/xgb"
	"github.com/BurntSushi/xgb/screensaver"
	"github.com/BurntSushi/xgb/xproto"
)

func main() {
	conn, err := xgb.NewConnDisplay(os.Getenv("DISPLAY"))
	if err != nil {
		log.Fatal(err)
	}
	defer conn.Close()
	if err := screensaver.Init(conn); err != nil {
		log.Fatal(err)
	}
	root := xproto.Setup(conn).DefaultScreen(conn).Root
	for range time.Tick(time.Second) {
		info, err := screensaver.QueryInfo(conn, xproto.Drawable(root)).Reply()
		if err != nil {
			log.Fatal(err)
		}
		log.Println(time.Duration(info.MsSinceUserInput) * time.Millisecond)
	}
}