func Init(theme *ColorTheme, black bool, mouse bool) { { in, err := os.OpenFile("/dev/tty", syscall.O_RDONLY, 0) if err != nil { panic("Failed to open /dev/tty") } _in = in // Break STDIN // syscall.Dup2(int(in.Fd()), int(os.Stdin.Fd())) } C.setlocale(C.LC_ALL, C.CString("")) _screen = C.c_newterm() if _screen == nil { fmt.Println("Invalid $TERM: " + os.Getenv("TERM")) os.Exit(2) } C.set_term(_screen) if mouse { C.mousemask(C.ALL_MOUSE_EVENTS, nil) } C.noecho() C.raw() // stty dsusp undef if theme != nil { C.start_color() var baseTheme *ColorTheme if C.tigetnum(C.CString("colors")) >= 256 { baseTheme = Dark256 } else { baseTheme = Default16 } initPairs(baseTheme, theme, black) _color = attrColored } else { _color = attrMono } }
func (r *FullscreenRenderer) defaultTheme() *ColorTheme { if C.tigetnum(C.CString("colors")) >= 256 { return Dark256 } return Default16 }
func tigetnum(s string) int { n := C.tigetnum(C.CString(s)) return int(n) }
func DefaultTheme() *ColorTheme { if C.tigetnum(C.CString("colors")) >= 256 { return Dark256 } return Default16 }