i3-blocks-go/blocks/acpi/main.go

94 lines
1.7 KiB
Go

package main
import (
"fmt"
"github.com/enescakir/emoji"
"github.com/xellio/tools/acpi"
r "gitnet.fr/deblan/i3-blocks-go/rendering"
// "net"
// "os"
// "regexp"
// "strings"
)
func main() {
datas, err := acpi.Battery()
if err != nil {
return
}
// value := r.TextWithPadding(ip, r.FB{})
//
// block := r.Block(fmt.Sprintf("ip_%s_%s", argIface, argVersion), r.BlockOptions{
// FullText: fmt.Sprintf("%s%s", label, value),
// })
//fmt.Println(block)
for _, data := range datas {
status := data.Status
level := data.Level
if status == "Unknown" {
return
}
if status == "Full" {
return
}
if status == "Discharging" {
fmt.Println(CreateDischargingBlock(level))
return
}
if status == "Charging" {
fmt.Println(CreateChargingBlock(level))
return
}
}
}
func CreateChargingBlock(level int) string {
value := fmt.Sprintf("%d%%", level)
symbol := r.Emoji(emoji.UpArrow)
options := r.NewBlockOptions()
options.FullText = r.TextWithPadding(fmt.Sprintf("%s %s", value, symbol), CreateFB(level))
block := r.Block("battery", options)
return block
}
func CreateDischargingBlock(level int) string {
value := fmt.Sprintf("%d%%", level)
symbol := r.Emoji(emoji.DownArrow)
block := r.Block("battery", r.BlockOptions{
FullText: r.TextWithPadding(fmt.Sprintf("%s %s", value, symbol), CreateFB(level)),
})
return block
}
func CreateFB(level int) r.FB {
if level < 20 {
return r.FB{
Foreground: r.Color("black1"),
Background: r.Color("red"),
}
}
if level < 50 {
return r.FB{
Foreground: r.Color("white"),
Background: r.Color("orange"),
}
}
return r.FB{
Foreground: r.Color("white"),
Background: r.Color("green"),
}
}