Fast Arch Linux productivity app — C++23 + Dear ImGui v1.92.7 + SDL3 + OpenGL 3.3.
| Tab | What it does |
|---|---|
| Clipboard | Last 50 clipboard entries, click to paste into focused app |
| Emoji | Searchable emoji grid, click to paste into focused app |
| Volume | PipeWire/PulseAudio slider + mute via pactl |
| Speech | Record → transcribe, or Live Type — speak and text types directly into any focused app |
| Settings | Theme, default tab, always-on-top, clipboard history size |
src/
models/ — pure data structs, no I/O
controllers/ — I/O, system calls, business logic
views/ — ImGui rendering only
main.cpp — wires everything together
vendor/imgui/ — vendored Dear ImGui
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc)
./build/quickhubsdl3,freetype2,openglpactl— volume control (PipeWire/PulseAudio)wtype— types text into focused Wayland window (paste & live speech)rsvg-convert+magick— SVG icon rendering (optional, falls back to procedural icons)
Speaks into any focused app in real-time using whisper.cpp linked directly (no subprocess).
# 1. Install whisper.cpp and wtype
yay -S whisper.cpp wtype
# 2. Download a model
sudo mkdir -p /usr/share/whisper
sudo curl -L https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-base.en.bin \
-o /usr/share/whisper/ggml-base.en.bin
# 3. Rebuild (cmake will auto-detect libwhisper)
cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc)| Model | Size | Speed | Accuracy |
|---|---|---|---|
ggml-tiny.en.bin |
75 MB | fastest | low |
ggml-base.en.bin |
142 MB | fast | good ✓ recommended |
ggml-small.en.bin |
466 MB | slower | better |
QuickHub picks the best available model automatically (small → base → tiny).
- Click Live Type in the Speech tab — QuickHub hides itself
- Focus returns to your target app (editor, browser, terminal, etc.)
- Speak — audio is captured via SDL3 mic at 16kHz mono
- Every 2 seconds, the audio is transcribed via
whisper_full()on your GPU - Result is typed into the focused window via
wtype - Bring QuickHub back and click Stop to end
If
whisper.cppis not installed at build time, Live Type is disabled and a message is shown. Regular record+transcribe mode still works viawhisper-cli.