Skip to content

holgertkey/qreader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

108 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages