История изменений
Исправление 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)
}
}