diff --git a/aerc.go b/aerc.go index 33acb43..6e1cb8a 100644 --- a/aerc.go +++ b/aerc.go @@ -8,6 +8,7 @@ import ( "os" "runtime/debug" "sort" + "strings" "time" "git.sr.ht/~sircmpwn/getopt" @@ -94,6 +95,20 @@ func usage() { log.Fatal("Usage: aerc [-v] [mailto:...]") } +var termsWithStatusLine = []string{"xterm", "tmux", "screen"} + +func setWindowTitle() { + term := strings.ToLower(os.Getenv("TERM")) + for _, t := range termsWithStatusLine { + if strings.Contains(term, t) { + // TODO: avoid hard coding the list of terminals that + // have status line support. + os.Stderr.Write([]byte("\x1b]0;aerc\a")) + return + } + } +} + func main() { opts, optind, err := getopt.Getopts(os.Args, "v") if err != nil { @@ -190,6 +205,10 @@ func main() { close(initDone) + if isatty.IsTerminal(os.Stderr.Fd()) { + setWindowTitle() + } + for !ui.ShouldExit() { for aerc.Tick() { // Continue updating our internal state