A ação personalizada do Nemo (script .sh) não é executada

3

Eu criei um script .sh para simples OCR-ing de capturas de tela que eu faço com o Shutter. O script é assim ( ocrFile.sh ):

#!/bin/bash

convert $1 /tmp/output.pnm
cat /tmp/output.pnm | pamstretch 4 > /tmp/stretched.pnm
convert /tmp/stretched.pnm -colorspace gray /tmp/output600dpi.tif
tesseract /tmp/output600dpi.tif ./outputText -l eng

Este script faz algum aprimoramento de imagem que é necessário ao fazer o OCR com o tesseract. Ele faz o trabalho corretamente se for chamado pelo terminal. O que eu queria era fazer todo o processo dentro do Nemo, então criei uma ação personalizada chamada OCR.nemo_action dentro de /home/user1/.local/share/nemo/actions com o seguinte conteúdo:

[Nemo Action]
Name=OCR The Screenshoot
Comment=OCR Function for Nemo File Manager
Exec=<ocrFile.sh %F>
Icon-Name=gtk-execute
Selection=Any
Extensions=png;

Essa ação do Nemo não produz saída com o script acima. O script .sh também está na pasta para as ações personalizadas do Nemo.

Por favor, ajude!

    
por Borivoje Petrovic 11.02.2014 / 18:29

3 respostas

1

Ótimo !!

- ~ / OCR.sh (chmod + x ~ / OCR.sh)

#!/bin/bash
convert $1 /tmp/OCR-output.pnm
cat /tmp/OCR-output.pnm | pamstretch 4 > /tmp/OCR-stretched.pnm
convert /tmp/OCR-stretched.pnm -colorspace gray /tmp/OCR-output600dpi.tif 
tesseract /tmp/OCR-output600dpi.tif ~/Desktop/OCR-outputText -l eng 
rm /tmp/OCR-output.pnm /tmp/OCR-stretched.pnm /tmp/OCR-output600dpi.tif

- ~ / .local / share / nemo / actions

[Nemo Action]
Active=true
Name=OCR picture
Comment=OCR Function for Nemo File Manager
Selection=S
Exec=/bin/bash /home/user/OCR.sh %F                 --- change "user"
Icon-Name=gtk-execute
Extensions=png;jpg;jpeg;bmp;

E o texto do OCR está no meu Desktop !!!

    
por John G. 28.07.2014 / 15:53
1

Eu meio que resolvi essa situação em Cinnamon. O arquivo .nemo_action consiste no seguinte conteúdo.

[Nemo Action]
Name=OCR The Screenshoot
Comment=OCR Function for Nemo File Manager
Selection=S
Exec=gnome-terminal --working-directory=%P -e "/media/storage/Scripts/actions/ocrFile.sh %F"
Icon-Name=gtk-execute
Extensions=png;jpg;jpeg;bmp;
Active=true

Ter o lançamento do terminal para fazer o trabalho é uma solução alternativa aqui. Todo o resto não parece produzir resultados.

O próprio script bash permaneceu praticamente o mesmo, alterado apenas por uma diretiva para manter o terminal aberto até a execução do conjunto de comandos.

#!/bin/bash
convert $1 /tmp/output.pnm
cat /tmp/output.pnm | pamstretch 4 > /tmp/stretched.pnm
convert /tmp/stretched.pnm -colorspace gray /tmp/output600dpi.tif 
tesseract /tmp/output600dpi.tif ./outputText -l eng 
rm /tmp/output.pnm /tmp/stretched.pnm /tmp/output600dpi.tif
bash

O que anseio, em última análise, é tornar este processo completamente livre de terminais. Parece-me que o processo é um pouco diferente do Gnome2 (Mate). Aqui o script bash que consiste em comandos de terminal não executa "em algum lugar no fundo". Com scripts bash que chamam aplicativos GUI, a diretiva Exec= do Gnome3 permite o valor <script.sh %F> .

    
por Borivoje Petrovic 12.02.2014 / 20:09
0

É um script bash? Experimente

Exec=/bin/bash /home/user1/.local/share/nemo/actionsocrFile.sh %F

(ou mesmo /bin/sh , que geralmente é dash , pode ser um pouco mais rápido).

Quanto à depuração, na linha de comando:

$ nemo -q # quit all instances of nemo
$ NEMO_ACTION_VERBOSE=1 nemo

Em seguida, execute a ação na janela nemo que será aberta.

    
por artfulrobot 20.05.2014 / 11:54