diff --git a/main.go b/main.go index a79ee74..ad65671 100644 --- a/main.go +++ b/main.go @@ -7,6 +7,7 @@ import ( _ "image/png" "os" "os/exec" + "path" "path/filepath" "regexp" "strconv" @@ -245,6 +246,31 @@ func getAbsLogoPath(relativePath string) string { return relativePath } +func getShell() string { + out, err := exec.Command("ps", "-p", strconv.Itoa(os.Getppid()), "-o", "comm=").Output() + if err != nil { + return path.Base(os.Getenv("SHELL")) + } + return strings.TrimSpace(string(out)) +} + +func getTerminal() string { + return os.Getenv("TERM") +} + +func getDE() string { + return os.Getenv("XDG_CURRENT_DESKTOP") +} + +func getUptime() string { + out, err := exec.Command("sh", "-c", "uptime -p").Output() + if err != nil { + return "Unknown" + } + uptime := strings.TrimPrefix(string(out), "up ") + return strings.TrimSpace(uptime) +} + func main() { type Info struct { Label string @@ -265,7 +291,11 @@ func main() { {"krnl", getKernel()}, {"ram", getRam()}, {"gpu", getGpu()}, + {"de/wm", getDE()}, {"pkgs", getPkgs()}, + {"shell", getShell()}, + {"term", getTerminal()}, + {"uptime", getUptime()}, } logoPath := flag.String("l", absoluteDefaultLogo, "Absolute or relative path to the logo image")