Skip to content

michaelss/clarocr

Repository files navigation

clarocr

Ferramenta para Linux/GNOME que permite selecionar uma região da tela e extrair o texto presente nela via OCR, copiando o resultado automaticamente para a área de transferência.

Demonstração

Casos de uso típicos:

  • Extrair texto de vídeos pausados no navegador
  • Capturar texto de imagens ou PDFs exibidos na tela
  • Copiar trechos de aplicações que não permitem seleção de texto

Ambiente

  • Sistema operacional: Linux
  • Desktop: GNOME
  • Display server: X11 e Wayland (detecção automática)

Tecnologias

Componente Tecnologia
Linguagem Go
OCR engine Tesseract OCR via gosseract
Seleção de região (X11) slop
Seleção de região (Wayland) slurp
Captura de tela (X11) maim
Captura de tela (Wayland) grim
Clipboard (X11) xclip
Clipboard (Wayland) wl-clipboard
Ícone na bandeja systray via libayatana-appindicator3
Notificações libnotify (notify-send)

Dependências do sistema

Para compilação

sudo apt install \
  libtesseract-dev \
  libleptonica-dev \
  libayatana-appindicator3-dev

Para execução

# X11
sudo apt install \
  libtesseract5 tesseract-ocr tesseract-ocr-por tesseract-ocr-eng \
  slop maim xclip libayatana-appindicator3-1 libnotify-bin

# Wayland (substituir slop/maim/xclip por:)
sudo apt install slurp grim wl-clipboard

Nota: No GNOME, o ícone na bandeja requer a extensão AppIndicator.

sudo apt install gnome-shell-extension-appindicator

Compilação

# Compilar o binário
make build

# Gerar pacote .deb
make deb

# Gerar pacote .deb com versão específica
make deb VERSION=1.2.0

O pacote gerado estará em dist/clarocr_<versão>_amd64.deb.

Instalação via .deb

sudo dpkg -i dist/clarocr_1.0.0_amd64.deb

O apt resolverá as dependências automaticamente. Após instalar, execute clarocr install para configurar o autostart.

Execução

Captura avulsa

Abre o seletor de região, extrai o texto e copia para o clipboard:

clarocr capture
clarocr capture --lang por+eng   # idioma padrão
clarocr capture --lang eng        # somente inglês

Os códigos de idioma seguem o padrão Tesseract. Combine idiomas com + (ex: por+eng+spa).

Daemon com ícone na bandeja

Inicia em background com ícone na bandeja do sistema:

clarocr daemon
clarocr daemon --lang eng

O menu da bandeja permite acionar a captura e trocar o idioma sem reiniciar o daemon.

Configurar autostart

Registra o daemon para iniciar automaticamente no login:

clarocr install

Atalho de teclado

Para acionar a captura por atalho, adicione um atalho personalizado nas configurações do GNOME apontando para:

clarocr capture --lang por+eng

Ou configure via linha de comando (substitua <Super><Shift>t pelo atalho desejado):

BINARY=$(which clarocr)

gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings \
  "['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/clarocr/']"

gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/clarocr/ \
  name 'Capturar texto'

gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/clarocr/ \
  command "$BINARY capture --lang por+eng"

gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/clarocr/ \
  binding '<Super><Shift>t'

Release via GitHub Actions

Ao criar uma tag v*, o workflow em .github/workflows/release.yml compila e publica o .deb automaticamente no GitHub Releases:

git tag v1.0.0
git push origin v1.0.0

About

É como um print screen, mas já converte para texto.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors