# RasterExRatatui v0.4.0 - Table of Contents > Render ExRatatui apps on pixel displays such as e-ink panels and Linux framebuffers ## Pages - [Overview](readme.md) - [Contributing](contributing.md) - [Changelog](changelog.md) - Introduction - [Usage Rules (for AI agents)](usage-rules.md) - [Examples](examples.md) - Guides - [Nerves Quick Start](nerves_quickstart.md) - [Building a Surface](surfaces.md) - [Fonts](fonts.md) - [Pixel Formats](pixel_formats.md) - [Linux Framebuffers](framebuffer.md) - [Telemetry](telemetry.md) ## Modules - Surface - [RasterExRatatui.Framebuffer.Surface](RasterExRatatui.Framebuffer.Surface.md): A complete surface for a Linux framebuffer and its evdev keyboard, in one `use`. - [RasterExRatatui.Surface](RasterExRatatui.Surface.md): The contract a pixel display implements to run an ExRatatui app. - Core - [RasterExRatatui](RasterExRatatui.md): Render [ExRatatui](https://hexdocs.pm/ex_ratatui) apps on pixel displays such as e-ink panels, with helpers for Linux framebuffers. - [RasterExRatatui.Grid](RasterExRatatui.Grid.md): The current frame of an `ExRatatui.CellSession`, as a cell map plus the list of pixel regions on screen. - [RasterExRatatui.Palette](RasterExRatatui.Palette.md): Turns ExRatatui colour terms into RGB triples for colour panels. - [RasterExRatatui.Patch](RasterExRatatui.Patch.md): A rectangle of packed pixels to write to a panel. - [RasterExRatatui.Raster](RasterExRatatui.Raster.md): Turns `ExRatatui.CellSession` payloads into packed pixels for a panel. - [RasterExRatatui.Session](RasterExRatatui.Session.md): An ExRatatui app running on a raster, driven from the caller's own process. - Fonts - [RasterExRatatui.Font](RasterExRatatui.Font.md): Behaviour for a monospace bitmap font: a fixed cell size and one bitmap per codepoint. - [RasterExRatatui.Font.Art](RasterExRatatui.Font.Art.md): ASCII art to glyph bitmaps and back, for hand-drawn fonts. - [RasterExRatatui.Font.Default6x8](RasterExRatatui.Font.Default6x8.md): The built-in 6×8 monospace bitmap font, drawn for a 400×300 1-bit e-ink panel and readable on any panel with an integer `scale:`. - [RasterExRatatui.Font.Generated](RasterExRatatui.Font.Generated.md): Glyphs derived from their Unicode geometry instead of drawn by hand, for any cell size. - Pixel formats - [RasterExRatatui.PixelFormat](RasterExRatatui.PixelFormat.md): Behaviour for packing pixels the way a panel expects them. - [RasterExRatatui.PixelFormat.Mono](RasterExRatatui.PixelFormat.Mono.md): One gray byte per pixel for 1-bit panels: `0` is ink, `255` is paper. - [RasterExRatatui.PixelFormat.RGB565](RasterExRatatui.PixelFormat.RGB565.md): 16-bit RGB565, little-endian: red in the top 5 bits, green in the middle 6, blue in the low 5, low byte first. The usual depth of SPI LCDs and of Linux framebuffers configured with `framebuffer_depth=16`. - [RasterExRatatui.PixelFormat.XRGB8888](RasterExRatatui.PixelFormat.XRGB8888.md): 32-bit XRGB8888, little-endian: bytes are blue, green, red, then an unused byte written as `255`. A common Linux framebuffer depth; `RasterExRatatui.Framebuffer.format_for/1` picks it from the device instead of assuming it. - Device helpers - [RasterExRatatui.Framebuffer](RasterExRatatui.Framebuffer.md): Writes packed pixels to a Linux framebuffer device (`/dev/fbN`). - [RasterExRatatui.Input.Devices](RasterExRatatui.Input.Devices.md): Finds and reads the evdev input devices a panel comes with, and finds them again when they go away. - [RasterExRatatui.Input.Evdev](RasterExRatatui.Input.Evdev.md): Translates Linux evdev keyboard events into `ExRatatui.Event.Key` structs. - [RasterExRatatui.Input.Touch](RasterExRatatui.Input.Touch.md): Turns evdev touch events into the `ExRatatui.Event.Mouse` events an app expects: a tap is a `"down"` and an `"up"` on the cell under the finger, a finger moving into another cell is a `"drag"`. - Internals - [RasterExRatatui.Telemetry](RasterExRatatui.Telemetry.md): `:telemetry` integration for `raster_ex_ratatui`.