qreader 0.3.0

A clipboard manager and file reader with emoji support and customizable fonts
qreader-0.3.0 is not a library.

QReader v0.3.0

A cross-platform file reader and clipboard manager built with Rust using the eframe/egui GUI framework.

Features

  • Open text files via File → Open… dialog or directly: qreader file.txt
  • Real-time clipboard monitoring with configurable auto-update intervals
  • Customizable fonts: Default, Monospace, Serif, Sans Serif
  • Text alignment: Left, Center, Right, Justify (default)
  • Adjustable line spacing (0.8×–3.0×)
  • Adjustable font sizes for UI and content areas (independently)
  • Background and font color customization with live preview
  • Text statistics: line count, word count, last update time
  • Always-on-top window option
  • Settings persistence — configuration survives restarts
  • Keyboard shortcuts for quick access

Requirements

  • Rust toolchain 1.70+
  • Windows (primary platform; other platforms compile with minor adjustments)

Build and Run

# Clone the repository

git clone https://github.com/holgertkey/qreader.git

cd qreader


# Run in development mode

cargo run


# Build debug binary

cargo build


# Build optimized release binary

cargo build --release

The release binary is placed in target/release/qreader.exe.

Usage

# Open as clipboard manager (default mode)

qreader


# Open a text file

qreader file.txt

qreader path/to/notes.md


# Print version

qreader --version


# Print help

qreader --help


# Run in debug mode (keeps terminal open, enables logging)

qreader -d

qreader -d file.txt

Supported file formats: txt, log, md, json, toml, yaml, ini, cfg, rs, py, js, ts, html, css, xml, sh, bat, and more.

Controls

Action Method
Read clipboard Click Read button or Ctrl+V
Clear clipboard Click Clear button
Increase/decrease font Ctrl+Scroll
Open a file File → Open… (native dialog)
Save content to file File → Save… (native dialog)
Open preferences File → Preferences
Exit File → Exit or Alt+F4

In file mode the Read and Clear buttons are inactive — the window is read-only.

Auto-Update

Enable Auto-update in preferences to monitor the clipboard continuously. The minimum update interval is 200 ms to keep the system responsive.

Preferences

Setting Description
Background color Window background color
Font color Text color for content and UI labels
UI font size Size of interface elements (8–24 px)
Content font size Size of displayed clipboard text (8–48 px)
Content margin Left and right padding around the text (0–50 mm)
Content font Font family for clipboard text
Text alignment Left, Center, Right, or Justify (default)
Line spacing Line height multiplier for content text (0.8–3.0×)
Always on top Keep window above all others (requires restart)
Auto-update Periodically check clipboard (200–5000 ms interval)

Configuration

Settings are stored in qreader_settings.json next to the executable and loaded automatically on startup. If the file is missing, sensible defaults are used.

Architecture

File Description
main.rs Entry point, CLI argument parsing
app.rs Main application state and update loop
clipboard_manager.rs Cross-platform clipboard operations
file_reader.rs Extensible file reader (trait + registry)
settings.rs Persistent configuration management
ui.rs GUI rendering functions
font_choice.rs Font selection enumeration
build.rs Version synchronization to docs

Changelog

See CHANGELOG.md for the full version history.