diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..4f062d6
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+/release
diff --git a/Makefile b/Makefile
index 5dfc46c..38609e4 100644
--- a/Makefile
+++ b/Makefile
@@ -29,5 +29,4 @@ release:
 	GOOS=linux   GOARCH=amd64 go build -o "release/${APP}_linux_amd64" -trimpath ${BUILDFLAGS}
 	GOOS=linux   GOARCH=arm64 go build -o "release/${APP}_linux_arm64" -trimpath ${BUILDFLAGS}
 	GOOS=linux   GOARCH=386   go build -o "release/${APP}_linux_386" -trimpath ${BUILDFLAGS}
-	GOOS=windows GOARCH=amd64 go build -o "release/${APP}_windows_amd64.exe" -trimpath ${BUILDFLAGS}
 
diff --git a/statusline.go b/statusline.go
index dd7f32d..350a076 100644
--- a/statusline.go
+++ b/statusline.go
@@ -1,17 +1,22 @@
 package main
 
 import (
+	"flag"
 	"fmt"
 	"os"
 	"runtime"
-	"strconv"
 	"time"
 
 	"github.com/shirou/gopsutil/v3/load"
 	"github.com/shirou/gopsutil/v3/mem"
 )
 
-const warnFormat = "#[bg=colour208]"
+type Format struct {
+	Default, Warning string
+}
+
+var defaultFormat = Format{}
+var tmuxFormat = Format{Default: "#[default]", Warning: "#[bg=colour208]"}
 
 var binarySuffixes = []string{"B", "KiB", "MiB", "GiB", "TiB"}
 
@@ -34,20 +39,20 @@ func usage() {
 	os.Exit(2)
 }
 
-func printLoad(precision int) {
+func printLoad(format Format, precision int) {
 	l, err := load.Avg()
 	if err != nil {
 		panic(err) // fixme
 	}
 
 	if l.Load1 > float64(runtime.NumCPU()) {
-		fmt.Print(warnFormat)
+		fmt.Print(format.Warning)
 	}
 	fmt.Printf("[%.[1]*[2]f %.[1]*[3]f %.[1]*[4]f]",
 		precision, l.Load1, l.Load5, l.Load15)
 }
 
-func printMem(absolute, percent bool) {
+func printMem(format Format, absolute, percent bool) {
 	if !(absolute || percent) {
 		return
 	}
@@ -58,9 +63,9 @@ func printMem(absolute, percent bool) {
 	}
 
 	if v.UsedPercent > 90 {
-		fmt.Print(warnFormat, "[")
+		fmt.Print(format.Warning, "[")
 	} else {
-		fmt.Print("#[default][")
+		fmt.Print(format.Default, "[")
 	}
 	if absolute {
 		fmt.Printf("%s/%s", HBin(v.Used, 1), HBin(v.Total, 1))
@@ -74,35 +79,41 @@ func printMem(absolute, percent bool) {
 	fmt.Print("]")
 }
 
-func printTime(format string) {
+func printTime(format Format, timeFormat string) {
 	now := time.Now()
 
-	fmt.Print(now.Format("#[default]" + format))
+	fmt.Print(format.Default, now.Format(timeFormat))
 }
 
 func main() {
-	if len(os.Args) != 2 {
-		usage()
-	}
-	cols, err := strconv.Atoi(os.Args[1])
-	if err != nil {
-		fmt.Fprintln(os.Stderr, err)
-		usage()
+	cols := flag.Uint("c", 0, "Window width in columns. 0 prints everything.")
+	mode := flag.String("style", "none", "Include style directives in output. Valid values: none tmux")
+	flag.Parse()
+
+	format := defaultFormat
+	switch *mode {
+	case "", "none":
+	case "tmux":
+		format = tmuxFormat
+	default:
+		fmt.Fprintf(os.Stderr, "Usage of %s:\n", os.Args[0])
+		flag.PrintDefaults()
+		os.Exit(2)
 	}
 
-	if cols >= 150 {
-		printLoad(2)
-		printMem(true, true)
-		printTime(" Mon 2006-01-02 15:04")
-	} else if cols >= 120 {
-		printLoad(2)
-		printMem(false, true)
-		printTime(" 15:04")
-	} else if cols >= 100 {
-		printLoad(0)
-		printMem(false, true)
-		printTime(" 15:04")
-	} else if cols >= 80 {
-		printTime("15:04")
+	if *cols == 0 || *cols >= 150 {
+		printLoad(format, 2)
+		printMem(format, true, true)
+		printTime(format, " Mon 2006-01-02 15:04")
+	} else if *cols >= 120 {
+		printLoad(format, 2)
+		printMem(format, false, true)
+		printTime(format, " 15:04")
+	} else if *cols >= 100 {
+		printLoad(format, 0)
+		printMem(format, false, true)
+		printTime(format, " 15:04")
+	} else if *cols >= 80 {
+		printTime(format, "15:04")
 	}
 }