Capture any screen region → extract text via OCR → copy to clipboard instantly.
TextShot is a desktop OCR application for Linux that lets you select any area on your screen, run OCR (Tesseract), and copy the recognized text to your clipboard — all with a single click or keyboard shortcut.
Built with Tauri v2, React, TypeScript, and Rust.
- Screen capture — Select any region on screen using GNOME's interactive area selection (portal API)
- OCR — Extract text via Tesseract (supports multiple languages like English, Arabic, French, etc.)
- Auto-copy — Copies recognized text to clipboard automatically
- Customizable — OCR language, keyboard shortcuts, auto-copy toggle, confidence display
- System tray — Quick access to capture without focusing the app (requires AppIndicator extension)
- Keyboard shortcuts — Configurable in-app shortcuts for faster workflow
- Linux (tested on Ubuntu 24.04 / GNOME Wayland; also works on other distros with xdg-desktop-portal)
- Tesseract OCR with language packs — installed automatically with the
.debpackage below. For AppImage or manual install:sudo apt install tesseract-ocr tesseract-ocr-eng tesseract-ocr-ara tesseract-ocr-fra tesseract-ocr-spa
- GNOME AppIndicator extension (for system tray icon on GNOME) — usually pre-installed on Ubuntu
Download the .deb or .AppImage from the Releases page.
Debian / Ubuntu / Linux Mint:
sudo apt install ./textshot_0.1.2_amd64.debAny Linux (AppImage — no install needed):
chmod +x textshot_0.1.2_amd64.AppImage
./textshot_0.1.2_amd64.AppImageNote: Using
apt install(notdpkg -i) automatically pulls in Tesseract and all required language packs.
- Node.js 18+
- Rust toolchain
- Tauri system dependencies
libayatana-appindicator3-dev(for system tray bundling):sudo apt install libayatana-appindicator3-dev
git clone https://github.com/MahmoudKSultan/textshot.git
cd textshot
npm install
npx tauri buildOutput:
src-tauri/target/release/bundle/deb/textshot_0.1.0_amd64.debsrc-tauri/target/release/bundle/appimage/textshot_0.1.0_amd64.AppImage
npm install
npm run tauri devStarts Vite dev server with hot-reload.
- Launch TextShot
- Click Capture Screen & OCR (or press Ctrl+Enter)
- Select a region on screen using the crosshair
- The recognized text appears in the app and is copied to your clipboard
When running, TextShot adds a tray icon in the top bar (requires the AppIndicator extension on GNOME). Right-click for:
| Menu option | Action |
|---|---|
| Take Screenshot | Capture without focusing the app |
| Show Window | Bring TextShot to front |
| Quit | Exit the application |
Click the gear icon ⚙ in the top-right corner to customize:
| Setting | Description |
|---|---|
| OCR Language | Tesseract language code (e.g. eng, ara, fra) |
| Auto-copy | Automatically copy OCR result to clipboard |
| Show Confidence | Display OCR confidence score |
| Save Screenshot | Save screenshot image to disk |
| Shortcut | Action |
|---|---|
| Ctrl+Enter | Capture screen & run OCR |
| Escape | Close settings panel |
Shortcuts are customizable in the Settings panel.
TextShot uses xdg-desktop-portal for screen capture, which integrates with your desktop's screenshot UI.
| Desktop | Status |
|---|---|
| GNOME (Ubuntu, Fedora) | ✅ Full support — interactive area selection via portal |
| KDE Plasma | ✅ Should work — uses KDE's portal screenshot |
| Linux Mint (Cinnamon/MATE) | ✅ Works — falls back to gnome-screenshot --area or mate-screenshot --area if the portal doesn't support interactive selection. |
| XFCE | ✅ Works — falls back to xfce4-screenshooter --region if the portal doesn't support interactive selection. |
| Other desktops | gnome-screenshot, mate-screenshot, or xfce4-screenshooter for interactive selection. Falls back to non-interactive portal capture if none are available. |
| Layer | Technology |
|---|---|
| Desktop framework | Tauri v2 |
| Frontend | React, TypeScript, TailwindCSS, Vite |
| OCR engine | Tesseract (via leptess) |
| Screen capture | ashpd (xdg-desktop-portal) |
| Clipboard | tauri-plugin-clipboard-manager |
| System tray | Tauri tray-icon (libappindicator / libayatana) |
- App screenshot in README
- Flatpak / Snap package
- Auto-start on login
- OCR history
- Multi-monitor support
- Windows / macOS support
Contributions are welcome! Feel free to open issues, submit PRs, or suggest features.
- Fork the repo
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
MIT — see LICENSE for details.