Event handling (#5)
- Refactor `event` handling (heavily inspired by [crates-tui](https://github.com/ratatui/crates-tui/) via [Tui with Terminal and EventHandler](https://ratatui.rs/recipes/apps/terminal-and-event-handler/)) - Refactor widget structure - Disable `nixos-unstable` temporarily - Add `.rustfmt.toml`
This commit is contained in:
22
src/terminal.rs
Normal file
22
src/terminal.rs
Normal file
@@ -0,0 +1,22 @@
|
||||
use std::io::{stdout, Stdout};
|
||||
|
||||
use color_eyre::eyre::Result;
|
||||
use crossterm::{execute, terminal::*};
|
||||
use ratatui::{backend::CrosstermBackend, Terminal as RatatuiTerminal};
|
||||
|
||||
pub type Terminal = RatatuiTerminal<CrosstermBackend<Stdout>>;
|
||||
|
||||
pub fn init() -> Result<Terminal> {
|
||||
enable_raw_mode()?;
|
||||
execute!(stdout(), EnterAlternateScreen)?;
|
||||
let mut terminal = RatatuiTerminal::new(CrosstermBackend::new(stdout()))?;
|
||||
terminal.clear()?;
|
||||
terminal.hide_cursor()?;
|
||||
Ok(terminal)
|
||||
}
|
||||
|
||||
pub fn restore() -> Result<()> {
|
||||
execute!(stdout(), LeaveAlternateScreen)?;
|
||||
disable_raw_mode()?;
|
||||
Ok(())
|
||||
}
|
||||
Reference in New Issue
Block a user