94 lines
1.7 KiB
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"),
|
|
}
|
|
}
|