Crate ratatui_splash_screen
source ·Expand description
A Ratatui widget to turn any image to a splash screen in your terminal ✨
See the demo of gpg-tui for a real world example.
§Features
- Turn any image (
jpg
,png
) into a splash screen! - Verifies the file integrity via checking SHA checksum (optional)
- Supports grayscaling
§Installation
cargo add ratatui ratatui-splash-screen
§Usage
Create a SplashConfig
and construct a SplashScreen
widget with it.
Then render the widget in a loop using the render
function.
You can check if the splash screen is done rendering by calling is_rendered
.
§Examples
use std::error::Error;
use std::io::stdout;
use std::time::Duration;
use ratatui::prelude::*;
use ratatui_splash_screen::{SplashConfig, SplashScreen, SplashError};
static SPLASH_CONFIG: SplashConfig = SplashConfig {
image_data: include_bytes!("../assets/splash.png"),
sha256sum: Some("c692ae1f9bd4a03cb6fc74a71cb585a8d70c2eacda8ec95e26aa0d6a0670cffd"),
render_steps: 12,
use_colors: true,
};
fn main() -> Result<(), Box<dyn Error>> {
// create a terminal
let backend = CrosstermBackend::new(stdout());
let mut terminal = Terminal::new(backend)?;
// render splash screen
let mut splash_screen = SplashScreen::new(SPLASH_CONFIG)?;
while !splash_screen.is_rendered() {
terminal.draw(|frame| {
frame.render_widget(&mut splash_screen, frame.size());
})?;
std::thread::sleep(Duration::from_millis(100));
}
Ok(())
}
See the full example here.
§Tips
- Use small images (such as 200x200) for a better experience.
- You can tweak the
render_steps
value for smoother rendering. - Run
sha256sum(1)
command on your system to find out the SHA value. You can set it toNone
if you don’t want to check integrity.
Structs§
- Splash screen configuration.
- Splash screen error.
- Splash screen.