clear terminal on launch (#1870)
This commit is contained in:
@@ -3,11 +3,14 @@ use std::io::Stdout;
|
|||||||
use std::io::stdout;
|
use std::io::stdout;
|
||||||
|
|
||||||
use codex_core::config::Config;
|
use codex_core::config::Config;
|
||||||
|
use crossterm::cursor::MoveTo;
|
||||||
use crossterm::event::DisableBracketedPaste;
|
use crossterm::event::DisableBracketedPaste;
|
||||||
use crossterm::event::EnableBracketedPaste;
|
use crossterm::event::EnableBracketedPaste;
|
||||||
use crossterm::event::KeyboardEnhancementFlags;
|
use crossterm::event::KeyboardEnhancementFlags;
|
||||||
use crossterm::event::PopKeyboardEnhancementFlags;
|
use crossterm::event::PopKeyboardEnhancementFlags;
|
||||||
use crossterm::event::PushKeyboardEnhancementFlags;
|
use crossterm::event::PushKeyboardEnhancementFlags;
|
||||||
|
use crossterm::terminal::Clear;
|
||||||
|
use crossterm::terminal::ClearType;
|
||||||
use ratatui::backend::CrosstermBackend;
|
use ratatui::backend::CrosstermBackend;
|
||||||
use ratatui::crossterm::execute;
|
use ratatui::crossterm::execute;
|
||||||
use ratatui::crossterm::terminal::disable_raw_mode;
|
use ratatui::crossterm::terminal::disable_raw_mode;
|
||||||
@@ -36,6 +39,12 @@ pub fn init(_config: &Config) -> Result<Tui> {
|
|||||||
)?;
|
)?;
|
||||||
set_panic_hook();
|
set_panic_hook();
|
||||||
|
|
||||||
|
// Ensure the UI starts at the top of the terminal by clearing the
|
||||||
|
// current screen and moving the cursor to (0, 0) before creating the
|
||||||
|
// Terminal. This makes the initial welcome message render at the very top
|
||||||
|
// of the viewport, while keeping the normal scrollback history intact.
|
||||||
|
execute!(stdout(), Clear(ClearType::All), MoveTo(0, 0))?;
|
||||||
|
|
||||||
let backend = CrosstermBackend::new(stdout());
|
let backend = CrosstermBackend::new(stdout());
|
||||||
let tui = Terminal::with_options(backend)?;
|
let tui = Terminal::with_options(backend)?;
|
||||||
Ok(tui)
|
Ok(tui)
|
||||||
|
|||||||
Reference in New Issue
Block a user