// +build !windows package main import ( "os" "syscall" "github.com/nsf/termbox-go" ) func mainLoop(style Style) { screens := createScreens() displayScreen := screens[MainScreenIndex] layoutAndDrawScreen(displayScreen, style) for { event := termbox.PollEvent() if event.Type == termbox.EventKey { if event.Key == termbox.KeyCtrlZ { process, _ := os.FindProcess(os.Getpid()) termbox.Close() process.Signal(syscall.SIGSTOP) termbox.Init() } newScreenIndex := displayScreen.handleKeyEvent(event) if newScreenIndex < len(screens) { displayScreen = screens[newScreenIndex] layoutAndDrawScreen(displayScreen, style) } else { break } } if event.Type == termbox.EventResize { layoutAndDrawScreen(displayScreen, style) } } }