A cross-platform file reader and clipboard manager built with Rust using the eframe/egui GUI framework.
- 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
- Rust toolchain 1.70+
- Windows (primary platform; other platforms compile with minor adjustments)
# 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 --releaseThe release binary is placed in target/release/qreader.exe.
# 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.txtSupported file formats: txt, log, md, json, toml, yaml, ini, cfg, rs, py, js, ts, html, css, xml, sh, bat, and more.
| 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.
Enable Auto-update in preferences to monitor the clipboard continuously. The minimum update interval is 200 ms to keep the system responsive.
| 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) |
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.
| 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 |
See CHANGELOG.md for the full version history.