Add support for i3status-rust

This commit is contained in:
2021-04-29 10:11:51 -05:00
parent 00e13fc7ad
commit 2ba309fe36
3 changed files with 48 additions and 0 deletions

View File

@@ -8,6 +8,35 @@ import (
todotxt "git.bullercodeworks.com/brian/go-todotxt"
)
func (a *AppState) opI3Status(args []string) int {
var filterString string
state := "Idle"
if len(args) > 0 {
filterString = strings.Join(args, " ")
a.TaskList = a.getFilteredList(filterString)
}
total := len(*a.TaskList)
var incomplete int
for _, v := range *a.TaskList {
if !v.HasCompletedDate() {
incomplete++
if dateWithinNextDay(v.DueDate) {
state = "Warning"
}
}
}
if state != "Warning" {
warning := a.config.Get("i3status_warning")
if warning != "" {
if len(*a.getFilteredList(warning)) > 0 {
state = "Warning"
}
}
}
fmt.Printf("{\"icon\":\"tasks\",\"state\":\"%s\", \"text\": \"%s: %d/%d\"}", state, filterString, incomplete, total)
return 0
}
func (a *AppState) opListTasks(args []string) int {
var lastIdx int
var filterString string