Você não está autenticado.

Anúncio

Arch Linux Brasil está precisando de sua colaboração para realizar o pagamento do domínio e do host, para colaborar, realizar doações via paypal.

Para mais informações: contato at archlinux-br.org.

#1 18/05/2017 14:34:46

SuperMax
Membro
Registrado: 09/04/2015
Mensagens: 84

Ações personalizadas Nemo

estou com dificuldade com dua ações personalizadas para o Nemo,

[Nemo Action]
Name=Exibir JPG Info Exif
Comment=Mostar informação Exif das JPG
Exec=jhead %F | zenity --text-info --title=Exif_Info --width=400 --height=250
Selection=s
Mimetypes=image/*;
Icon-Name=image-filter
#EscapeSpaces=true
#Quote=double
[Nemo Action]
Name=Baixar Legendas
Comment=Baixar Legendas Automaticamente
Exec=periscope -l pt-br "%F" && zenity --info --title "Concluído" --text "Legendas Baixada com sucesso" || zenity --error --title "provavelmente" --text "Legendas não baixou"
Icon-Name=accessories-text-editor
Selection=any
Extensions=avi;mp4;mkv;
#EscapeSpaces=true
#Quote=double

alguém pode me ajudar no que esta errado?

Offline

#2 18/05/2017 21:01:41

swatquest
Moderador
Registrado: 05/10/2010
Mensagens: 1.951

Re: Ações personalizadas Nemo

parece que o zenity não funciona direito

solução cria arquivo scrip t e chama ele no exe,

por exemplo
jpg-info.sh

#!/bin/bash
jhead %$1 | zenity --text-info --title=Exif_Info --width=400 --height=250

Exec=jpg-info.sh  %F

Offline

#3 19/05/2017 19:11:57

SuperMax
Membro
Registrado: 09/04/2015
Mensagens: 84

Re: Ações personalizadas Nemo

swatquest escreveu:

parece que o zenity não funciona direito

solução cria arquivo scrip t e chama ele no exe,

por exemplo
jpg-info.sh

#!/bin/bash
jhead %$1 | zenity --text-info --title=Exif_Info --width=400 --height=250

Exec=jpg-info.sh  %F

Eu não consegui perfeitamente, tentei varias combinações, mas não consegui fazer selecionar múltiplos arquivos e eles tendo espaços.
Consegui selecionando vários arquivos mas sem espaços, ou um arquivo só mesmo tendo espaço.

[Nemo Action]
Name=Exibir JPG Info Exif
Comment=Mostar informação Exif das JPG
Exec=<info_exif_jpg.sh %F>
Selection=notnone
Mimetypes=image/*;
Icon-Name=image-filter
#EscapeSpaces=true
Quote=double
#Quote=backtick
#!/bin/bash
arquivos=$(echo $* | sed 's/`/\"/g')
(jhead $arquivos) | zenity --text-info --title="$# $arquivos" --width=1000 --height=250 

Offline

#4 19/05/2017 23:14:18

swatquest
Moderador
Registrado: 05/10/2010
Mensagens: 1.951

Re: Ações personalizadas Nemo

coloque as aspas e mude $* para [email protected]

#!/bin/bash
jhead "[email protected]" | zenity --text-info --title="$# $arquivos" --width=1000 --height=250

Última edição por swatquest (19/05/2017 23:16:28)

Offline

#5 20/05/2017 17:45:16

SuperMax
Membro
Registrado: 09/04/2015
Mensagens: 84

Re: Ações personalizadas Nemo

swatquest escreveu:

coloque as aspas e mude $* para [email protected]

#!/bin/bash
jhead "[email protected]" | zenity --text-info --title="$# $arquivos" --width=1000 --height=250

Obrigado mais uma vez, esse funcionou bem.


Agora estou com um outro impasse em outra Ação personalizada.
Como fazer para aceitar nome de arquivos q tenham quotes simples ou duplas ' e "
Exemplos (pastas ou arquivos com esses nomes):
caio's music
Filme "Eu Robo"

[Nemo Action]
Name=TESTE
Comment=Teste
Exec=<teste1.sh %F>
Icon-Name=minetest-icon
Selection=any
Extensions=dir;
EscapeSpaces=true
Quote=backtick
#!/bin/bash
(xfce4-terminal -e "bash -ic 'echo $1;exec bash;' ") 

Offline

#6 20/05/2017 17:47:45

SuperMax
Membro
Registrado: 09/04/2015
Mensagens: 84

Re: Ações personalizadas Nemo

SuperMax escreveu:
swatquest escreveu:

coloque as aspas e mude $* para [email protected]

#!/bin/bash
jhead "[email protected]" | zenity --text-info --title="$# $arquivos" --width=1000 --height=250

Obrigado mais uma vez, esse funcionou bem.


Agora estou com um outro impasse em outra Ação personalizada.
Como fazer para aceitar nome de arquivos q tenham quotes simples ou duplas ' e "
Exemplos (pastas ou arquivos com esses nomes):
caio's music
Filme "Eu Robo"

[Nemo Action]
Name=TESTE
Comment=Teste
Exec=<teste1.sh %F>
Icon-Name=minetest-icon
Selection=any
Extensions=dir;
EscapeSpaces=true
Quote=backtick
#!/bin/bash
(xfce4-terminal -e "bash -ic 'echo $1;exec bash;' ") 

ah, o nome pode ter parenteses tb, mas isso eu tinha solucionado assim
pasta="${*//\(/\\\(}"
pasta="${pasta//\)/\\\)}"
não sei se era a melhor forma mas pros () funcionou. Mas o mesmo não funciona para ' e "

Offline

#7 20/05/2017 19:06:44

swatquest
Moderador
Registrado: 05/10/2010
Mensagens: 1.951

Re: Ações personalizadas Nemo

tente utilizar aspas, isto deveria solucionar

xfce4-terminal -e "bash -ic 'echo "$1" ;exec bash;' "

senão mande os exemplos de nomes para que possa fazer um teste

Última edição por swatquest (20/05/2017 19:07:30)

Offline

#8 20/05/2017 19:35:25

SuperMax
Membro
Registrado: 09/04/2015
Mensagens: 84

Re: Ações personalizadas Nemo

swatquest escreveu:

tente utilizar aspas, isto deveria solucionar

xfce4-terminal -e "bash -ic 'echo "$1" ;exec bash;' "

senão mande os exemplos de nomes para que possa fazer um teste

Não deu.

os nomes de pastas teste q estou tentando são:

teste 1
teste (2)
teste (3)'
teste's (3)
teste ("4")

isso vai me ser util pra uns 3 ou 4 ações personalizadas de uma vez. No momento estou adaptando este script q achei fantastico https://gist.github.com/colinux/799510 para renomear legendas de seriados todas de uma só vez.

pra funcionar no nemo pretendo usar assim:

xfce4-terminal -e "bash -ic 'cd "$1"; subtitles-renamer.sh;exec bash;' " 

o script roda na pasta atual do terminal, isso permitiria manter o script original, posicionar o terminal na pasta desejada e visualizar o log q ele gera no terminal.

Offline

#9 21/05/2017 22:49:21

swatquest
Moderador
Registrado: 05/10/2010
Mensagens: 1.951

Re: Ações personalizadas Nemo

SE vocÊ usar a opção -e funciona?

xfce4-terminal -e "bash -ic 'echo -e "$1" ;exec bash;' "

Offline

#10 22/05/2017 16:44:46

SuperMax
Membro
Registrado: 09/04/2015
Mensagens: 84

Re: Ações personalizadas Nemo

swatquest escreveu:

SE vocÊ usar a opção -e funciona?

xfce4-terminal -e "bash -ic 'echo -e "$1" ;exec bash;' "

Não deu, nem no Yad não vai:

#!/bin/bash
yad --info --title="teste" --text="$*" --width=700 --height=450
Exec=<teste1.sh %F>
EscapeSpaces=true
Quote=single

Assim funciona para " como em pastas chamadas:
teste ("4")
mas não para
teste's (3)
embora teste ('3') funcione mas elimine as ' q no caso para um nome de arquivo daria falha.

Exec=<teste1.sh \'%F\'>
EscapeSpaces=true
Quote=backtick

Assim até roda as pastas
teste ("4") e teste's (3)
mas as aspas ' e " são eliminadas e se tiver apenas uma " nem abre, embora esse caso não deve ocorrer na pratica

Exec=<teste1.sh \'%F\'>
EscapeSpaces=true
#Quote=single (com ou sem não muda o resultado)

Assim, abre tudo no Yad, mas apenas as aspas simples ' são removidas
ai no caso da pasta teste's (3) sai erroneamente como testes (3) (sem a ')

Exec=<teste1.sh \\\"'%F'\\\">
EscapeSpaces=true

Assim é o que cheguei mais perto, abre tudo, mas aspas duplas " são removidas
teste ("4") sai como teste (4)

ps.: pra lançar pro terminal, esses q deram certo no yad, preciso fazer a filtragem nos parenteses tb \(\).
xfce4-terminal -e "bash -ic 'echo -e "$*";exec bash;' "

ps.2: Daquelas outras ações q vc me passou eu reparei q "abrir como root", "editar como root", "comparar" tb não abre pastas com aspas.
"procurar" (eu não uso catfish, uso gnome-search-tool) abre correto. "abrir terminal", q já vem configurado no nemo, abre normal tbm.
Renomear legendas, qdo tem aspas no nemo não funciona, mas no thunar funciona ok.

Última edição por SuperMax (22/05/2017 18:35:58)

Offline

#11 22/05/2017 23:41:33

swatquest
Moderador
Registrado: 05/10/2010
Mensagens: 1.951

Re: Ações personalizadas Nemo

tenta da seguinte maneira

[Nemo Action]
Name=TESTE
Comment=Teste
Exec=mate-terminal --command="caminho do script/teste.sh %N "
Icon-Name=minetest-icon
Selection=any
Extensions=dir;
EscapeSpaces=true

teste.sh

echo "[email protected]" 

exec bash

este problema com apóstrofos já tem um tempo

https://github.com/linuxmint/nemo/issue … postrophes

Última edição por swatquest (23/05/2017 00:07:04)

Offline

#12 23/05/2017 15:56:03

SuperMax
Membro
Registrado: 09/04/2015
Mensagens: 84

Re: Ações personalizadas Nemo

swatquest escreveu:

tenta da seguinte maneira

[Nemo Action]
Name=TESTE
Comment=Teste
Exec=mate-terminal --command="caminho do script/teste.sh %N "
Icon-Name=minetest-icon
Selection=any
Extensions=dir;
EscapeSpaces=true

teste.sh

echo "[email protected]" 

exec bash

este problema com apóstrofos já tem um tempo

https://github.com/linuxmint/nemo/issue … postrophes


Nada,

Exec=mate-terminal --command="caminho do script/teste.sh \"%N\" "

assim funciona com ' aspas simples

Exec=mate-terminal --command='caminho do script/teste.sh '\''%N'\'' '

assim funciona com " aspas dupla

não entendo mto de bash e escapar aspas dentro de aspas, mas não consigo fazer de uma forma de funcionar tanto aspas simples como duplas.

Me intriga o basico:

Exec=xfce4-terminal --default-working-directory="%F"

se usar o proprio menu de contexto do nemo para abrir no terminal, abre QUALQUER COISA, com aspas simples ou duplas, mas se fizer um nemo_action simples como o basico acima, ai não funciona. O mesmo vale pra leafpad ou geany, no "Abrir como", vai qualquer coisa, mas se criar um nemo_action não vai.

Deve ter algum pulo do gato pra funcionar...

Última edição por SuperMax (23/05/2017 19:45:32)

Offline

#13 25/05/2017 23:15:10

swatquest
Moderador
Registrado: 05/10/2010
Mensagens: 1.951

Re: Ações personalizadas Nemo

Eu verifiquei como funciona o nemo action

basicamente funciona como um arquivo desktop

o zenity funciona mas você tem que informar no comando sh -c ou bash -c

o arquivo que vocÊ criou [pode ser feito assim, sem a necessidade de um arquivo sh.

info.nemo_action

[Nemo Action]
Name=Exibir JPG Info Exif
Comment=Mostar informação Exif das JPG
Exec=sh -c "jhead %F | zenity --text-info --title="$# $arquivos" --width=1000 --height=250"
Selection=notnone
Mimetypes=image/*;
Quote=double

exluir_root.nemo_action

[Nemo Action]
Name=Excluir como root
Comment=Apaga permanentemente com permissão root
Exec=sh -c "zenity --question --text='Você quer apagar permanentemente %F?' && gksudo -- rm -rf %F"
Icon-Name=edit-delete
Selection=notnone
Extensions=any;
EscapeSpaces=true

seguindo este critério você poderia criar  um IF ( se existir arquivo execute)

Exec=sh -c "if [ -d \"%N\" ]; then echo execute; else echo caso não exista execute;fi"

ou pode testar usando váriaveis

Exec=sh -c "nome1=`echo \"%N\"`;nome2=`echo  '\''%N'\'' `;  if [ -d \"%N\" ]; then echo $nome1; else echo nome2;fi"

Última edição por swatquest (25/05/2017 23:47:41)

Offline

#14 30/05/2017 15:57:00

SuperMax
Membro
Registrado: 09/04/2015
Mensagens: 84

Re: Ações personalizadas Nemo

swatquest escreveu:

Eu verifiquei como funciona o nemo action

basicamente funciona como um arquivo desktop

o zenity funciona mas você tem que informar no comando sh -c ou bash -c

Exec=sh -c "nome1=`echo \"%N\"`;nome2=`echo  '\''%N'\'' `;  if [ -d \"%N\" ]; then echo $nome1; else echo nome2;fi"

Desculpe a demora. Achei brilhante sua ideia, mas não funcionou para duas aspas duplas " ". então fiz a seguinte adaptação:

Exec=bash -c 'NOME1=`echo -e '\''%F'\'' `';"NOME2=`echo \"%F\"`; 
(if [ -e $NOME1 ]; then echo 2$NOME2; else echo 1$NOME1;fi)
 | zenity --text-info --title=\"Info Exif\" --width=700 --height=280"

E voilá! Achei q estava td ok, pq funcionaram todos os ARQUIVOS com aspas simples ou duplas nos nomes e diretorios. POREM, sei lá pq, talvez simples de resolver, mas para arquivos com duas aspas simples ' ' (/pasta/arquivo 'teste' imagem.jpg) (com uma'só funciona ok) o IF joga erroneamente para 1$NOME1 qdo deveria dar 2$NOME2. Creio q seja apenas alguma forma errada q fiz no IF. apesar q a opção -d não funcionou.
O que pode esta fazendo isso ocorrer?


ps.: com apenas uma aspas dupla ", não funcionou, porem creio q essa possibilidade na pratica não fará falta. Tb não funcionará se no caminho completo pasta+arquivo tiver os dois tipos de aspas, simples e duplas, que tb não deverá ocorrer esse caso.

Última edição por SuperMax (30/05/2017 17:52:09)

Offline

#15 30/05/2017 23:38:55

swatquest
Moderador
Registrado: 05/10/2010
Mensagens: 1.951

Re: Ações personalizadas Nemo

cara você pode usar o elif

if [[ condição ]] , then
execute o comando;
elif [[ condição ]]; then
execute o comando
else
execute o comando
fi

seguindo o que você criou

Exec=bash -c 'NOME1=`echo -e '\''%F'\'' '`';"NOME2=`echo \"%F\"`; (if [ -e $NOME1 ]; then echo 2$NOME2; elif [ -e $NOME2 ]; then  echo 1$NOME1;else echo -e não funciona;fi) | zenity --text-info --title=\"Info Exif\" --width=700 --height=280"

editado: agora que vi o erro..

depois vou verificar..

se colocar sem apóstrofo
NOME1=`echo -e '\''%F'\'' '`
funciona?

Já tentou inverter a condição do if?

em vez de  [ -e $NOME2 ];

coloque
[ -e $NOME1 ];
[ -e $NOME2 ];

Última edição por swatquest (31/05/2017 00:37:14)

Offline

#16 01/06/2017 14:14:58

SuperMax
Membro
Registrado: 09/04/2015
Mensagens: 84

Re: Ações personalizadas Nemo

swatquest escreveu:

cara você pode usar o elif

if [[ condição ]] , then
execute o comando;
elif [[ condição ]]; then
execute o comando
else
execute o comando
fi

seguindo o que você criou

Exec=bash -c 'NOME1=`echo -e '\''%F'\'' '`';"NOME2=`echo \"%F\"`; (if [ -e $NOME1 ]; then echo 2$NOME2; elif [ -e $NOME2 ]; then  echo 1$NOME1;else echo -e não funciona;fi) | zenity --text-info --title=\"Info Exif\" --width=700 --height=280"

editado: agora que vi o erro..

depois vou verificar..

se colocar sem apóstrofo
NOME1=`echo -e '\''%F'\'' '`
funciona?

Já tentou inverter a condição do if?

em vez de  [ -e $NOME2 ];

coloque
[ -e $NOME1 ];
[ -e $NOME2 ];

Obrigado mais uma vez.
Esse problema era com o espaço na verdade e resolvi tirando o EscapeSpaces=true e adicionando umas \" nas variaveis. Funcionou no teste com echo e tb funcionou com jhead pra imagens. Acredito que sendo assim funcionará para qualquer script.

esse é o melhor que consegui:

Exec=bash -c 'NOME1=`echo -e '\''%F'\'' `';"NOME2=`echo \"%F\"`;(if [ -e \"$NOME1\" ]; then jhead \"$NOME1\"; else jhead \"$NOME2\";fi) | zenity --text-info --title=\"Info Exif\" --width=700 --height=280"

mas não é perfeito
não sei pq, funcionou com todas combinações de arquivos (menos com o improvável uso de uma Aspas duplas" apenas). Porém tb não funciona so houver uso de aspas simples e duplas ao mesmo tempo em pastas e nomes de arquivos, q nesse caso até pode ocorrer mas tb não deve ser tão usual.
O que não funcionou e eu não entendi pq e tem um uso um pouco mais relevante é uma aspa simples na pasta (/test's folder/file.jpg). Não entendo pq funciona no arquivo (/teste pasta/test's image.jpg) mas não no diretório... Não sei se tem como contornar isso, sei q o problema ocorre nesse trecho 'NOME1=`echo -e '\''%F'\'' `', não não entendo pq só em nomes de pastas. Mas de qq forma, já deve atender a mais de 99% dos casos...

Por isso ainda me deixa incompreendido pq qq combinação de caracteres em pastas ou arquivos, abre com a opção nativa de "Abrir com" do nemo, e usar o Leafpad por exemplo, mas se eu criar uma nemo_action, mesmo usando esse script q já ajuda um tanto, mas não é perfeito nos pontos q falei...

Última edição por SuperMax (01/06/2017 14:22:53)

Offline

Rodapé do site