Valent Emission

A technical, developer-focused slideshow tool for Linux using standard Markdown instead of a GUI.

Utility GPL-3.0 Rust / Wry / Tao Active Status

Overview

Valent Emission is a lightweight, high-performance slide presentation tool built specifically for developers, researchers, and technical presenters who prefer writing standard Markdown text over navigating complex graphical interfaces.

Written entirely in Rust, the utility hosts an integrated editor and HTML-rendered side-by-side workspace. It runs as a native desktop window using Webview bindings, but dynamically adapts in terminal-only or remote environments (e.g., over SSH links) by launching an asynchronous, headless HTTP/WebSocket server.

Core Capabilities

Split-Screen Live Editor

  • Integrated Preview: Edit slide files directly on the left and watch updates render instantaneously in the styled panel on the right.
  • Synchronized Cursor: The preview viewport automatically scrolls to center on the slide currently focused under your active editing cursor.

Automated Viewport Scaling

  • Consistent Geometry: Slides use dynamic CSS transform scaling, ensuring that design layouts created on a 16:10 laptop screen will render identically on a 16:9 projector without breaking text wrapping or introducing overflows.

Technical Presentation Features

  • Syntax Highlighting: Clean code block tokenization powered by the native syntect compiler, supporting various light and dark developer themes.
  • Math & Equation Formatting: Live-compilation of mathematical expressions written in standard KaTeX syntax, supporting both inline ($) and block ($$) equations.
  • External Disk Sync: Watches source files using the Linux notify API. Presenters can keep editing files in external editors like Vim, Nano, or VS Code, and the presentation preview will update automatically on file save.

Headless Fallback Node

  • Diverging Server Mode: If a display server connection (X11/Wayland) is not present, Valent Emission automatically starts a background axum web server and WebSocket broadcaster. You can open and present slides in any standard web browser.

Getting Started

Ensure you have the required GTK3 development libraries installed to compile the native Webview dependencies.

1. System Prerequisites

bash - Install Deps
# Install build requirements for GTK & Webview dependencies sudo apt-get install build-essential pkg-config libssl-dev libgtk-3-dev libwebkit2gtk-4.1-dev

2. Build from Source

Compile the optimized release binary with the Rust toolchain:

bash - Cargo Build
# Clone and build git clone https://gitlab.com/quantum-hue/valent-emission.git cd valent-emission cargo build --release # The compiled binary will be located at: # ./target/release/valent-emission

3. Debian Packaging

Alternatively, generate a standalone installable .deb package using the helper script:

bash - Build DEB
# Compile and assemble Debian package bash packaging/build-deb.sh # Install standard package sudo dpkg -i target/debian/valent-emission_*.deb

Usage & Commands

Valent Emission accepts a path to a slide file and optional port parameters for the headless web server:

bash - Run Commands
# Create or edit slide file ./target/release/valent-emission slides.md # Bind headless WebSocket sync to port 8080 ./target/release/valent-emission slides.md --port 8080

Markdown Structure

Slides are separated using standard horizontal rule dividers (--- or ***) on their own lines:

markdown - slides.md
# Slide 1: Introduction Welcome to Valent Emission! --- # Slide 2: Equation Block The Schrodinger Equation renders instantly: $$i\hbar \frac{\partial}{\partial t}\Psi(\mathbf{r},t) = \hat{H}\Psi(\mathbf{r},t)$$

Navigation Hotkeys

  • ArrowRight / Space / Enter: Next Slide
  • ArrowLeft / Backspace: Previous Slide
  • F11: Toggle presentation fullscreen mode
  • Escape: Exit fullscreen mode
  • Ctrl + S: Save active slide edits inside editor