Skip to content

Latest commit

 

History

13 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

QuickHub

Fast Arch Linux productivity app — C++23 + Dear ImGui v1.92.7 + SDL3 + OpenGL 3.3.

Features

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

Architecture

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

Build

cmake -B build -DCMAKE_BUILD_TYPE=Release
cmake --build build -j$(nproc)
./build/quickhub

Dependencies

  • sdl3, freetype2, opengl
  • pactl — 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)

Speech: Live Type (Win+H equivalent)

Speaks into any focused app in real-time using whisper.cpp linked directly (no subprocess).

Setup

# 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)

Models (place in /usr/share/whisper/)

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).

How it works

  1. Click Live Type in the Speech tab — QuickHub hides itself
  2. Focus returns to your target app (editor, browser, terminal, etc.)
  3. Speak — audio is captured via SDL3 mic at 16kHz mono
  4. Every 2 seconds, the audio is transcribed via whisper_full() on your GPU
  5. Result is typed into the focused window via wtype
  6. Bring QuickHub back and click Stop to end

If whisper.cpp is not installed at build time, Live Type is disabled and a message is shown. Regular record+transcribe mode still works via whisper-cli.

About

Daily used tool for me and my frnd, here we have realtime voice to text in cli with very less cpu and gpu usage,and a clipboard and emoji board for linux

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages