From ae15eda5467543bdab178d5bcf56eb301a870ec7 Mon Sep 17 00:00:00 2001 From: Michael Kelley Date: Tue, 1 Sep 2020 21:47:13 -0700 Subject: Add truecolor support for Windows, if available (#2156) - Update to latest tcell which has 24 bit Windows support - light renderer under Windows defaults to Dark256, if possible - Respect TCELL_TRUECOLOR - Remove tcell 1.3 references --- src/tui/light.go | 12 ------------ src/tui/light_unix.go | 13 +++++++++++++ src/tui/light_windows.go | 8 ++++++++ 3 files changed, 21 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/tui/light.go b/src/tui/light.go index a2a0515c..9af19b83 100644 --- a/src/tui/light.go +++ b/src/tui/light.go @@ -3,7 +3,6 @@ package tui import ( "fmt" "os" - "os/exec" "regexp" "strconv" "strings" @@ -126,17 +125,6 @@ func NewLightRenderer(theme *ColorTheme, forceBlack bool, mouse bool, tabstop in return &r } -func (r *LightRenderer) defaultTheme() *ColorTheme { - if strings.Contains(os.Getenv("TERM"), "256") { - return Dark256 - } - colors, err := exec.Command("tput", "colors").Output() - if err == nil && atoi(strings.TrimSpace(string(colors)), 16) > 16 { - return Dark256 - } - return Default16 -} - func repeat(r rune, times int) string { if times > 0 { return strings.Repeat(string(r), times) diff --git a/src/tui/light_unix.go b/src/tui/light_unix.go index e4ce6313..18788702 100644 --- a/src/tui/light_unix.go +++ b/src/tui/light_unix.go @@ -5,6 +5,8 @@ package tui import ( "fmt" "os" + "os/exec" + "strings" "syscall" "github.com/junegunn/fzf/src/util" @@ -15,6 +17,17 @@ func IsLightRendererSupported() bool { return true } +func (r *LightRenderer) defaultTheme() *ColorTheme { + if strings.Contains(os.Getenv("TERM"), "256") { + return Dark256 + } + colors, err := exec.Command("tput", "colors").Output() + if err == nil && atoi(strings.TrimSpace(string(colors)), 16) > 16 { + return Dark256 + } + return Default16 +} + func (r *LightRenderer) fd() int { return int(r.ttyin.Fd()) } diff --git a/src/tui/light_windows.go b/src/tui/light_windows.go index 6f876af2..aa15a8a9 100644 --- a/src/tui/light_windows.go +++ b/src/tui/light_windows.go @@ -34,6 +34,14 @@ func IsLightRendererSupported() bool { return canSetVt100 } +func (r *LightRenderer) defaultTheme() *ColorTheme { + // the getenv check is borrowed from here: https://github.com/gdamore/tcell/commit/0c473b86d82f68226a142e96cc5a34c5a29b3690#diff-b008fcd5e6934bf31bc3d33bf49f47d8R178: + if !IsLightRendererSupported() || os.Getenv("ConEmuPID") != "" || os.Getenv("TCELL_TRUECOLOR") == "disable" { + return Default16 + } + return Dark256 +} + func (r *LightRenderer) initPlatform() error { //outHandle := windows.Stdout outHandle, _ := syscall.Open("CONOUT$", syscall.O_RDWR, 0) -- cgit v1.2.3