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:
Jens K.
2024-12-02 15:43:04 +01:00
committed by GitHub
parent db5909f3d9
commit 2f587c97b5
17 changed files with 469 additions and 95 deletions

22
src/terminal.rs Normal file
View 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(())
}