battery-notificator/main.go

39 lines
902 B
Go

package main
import (
"fmt"
"github.com/0xAX/notificator"
"github.com/distatus/battery"
"time"
)
var notify *notificator.Notificator
func main() {
warning := false
for {
battery, er := battery.Get(0)
if er != nil {
fmt.Println(er)
continue
}
percentage := battery.Current / battery.Full * 100
if !warning && percentage <= 15 && string(battery.State) != "Charging" {
warning = true
notify = notificator.New(notificator.Options{
DefaultIcon: "/home/trac/Go/src/github.com/0xAX/notificatior/icon/golang.png",
AppName: "Low Battery",
})
err := notify.Push("Battery LOW", "Plug in a charger", "/home/trac/Go/src/github.com/0xAX/notificator/icon/golang.png", notificator.UR_CRITICAL)
if err != nil {
panic(err)
}
} else if percentage > 15 || string(battery.State) == "Charging" {
warning = true
}
time.Sleep(1000 * time.Millisecond)
}
}