Howto: executar um aplicativo personalizado do pcmanfm no lubuntu

2

Eu executo o Lubuntu 14.04.3 LTS e baixei e instalei o castnow para transmitir vídeos do meu PC para o meu Chromecast. < br> A única alternativa que eu sei é fazer isso via Videostream usando o Chromium. Mas isso usa tantos recursos que meu pobre e velho laptop mal consegue aguentar ...
Eu acho que o castnow funciona muito bem. Mas é uma ferramenta de linha de comando e para iniciá-lo eu tenho que ir para uma janela de terminal e executar:

castnow --address [ip address chromecast] --myip [localip] [path to video]

Isso funciona, mas eu acharia muito mais fácil se eu pudesse navegar até o vídeo usando meu gerenciador de arquivos ( pcmanfm ) e abrir o vídeo.
Eu tentei criar um arquivo de script que executa o comando acima usando o arquivo selecionado como um parâmetro de entrada (% f), mas falhei misserably ...

E meu querido amigo Google não conseguiu me ajudar até agora. Alguém pode me ajudar a fazer isso?

Atualização 16 de outubro:

Eu quase fiz isso!

O que mais demorou foi encontrar o bug no pcmanfm que ele não executa scripts de shell. O artigo a seguir descreve isso bem e fornece uma solução alternativa: link

Eu criei um arquivo .desktop que executa um script e passa o arquivo como um parâmetro. Isto aparece como uma opção no menu e assim você também pode selecioná-lo no pcmanfm.

O script usa o nome do arquivo como parâmetro e executa castnow com todos os parâmetros. Infelizmente não funciona.

O script que eu criei é assim:

filename=
filename=${filename:7:$((${#filename}-7))}
filename=${filename//%20/\ }
echo castnow --address 192.168.0.21 --myip 192.168.0.47 $filename
castnow --address 192.168.0.21 --myip 192.168.0.47 $filename

O resultado é:

castnow --address 192.168.0.21 --myip 192.168.0.47 /home/joost/Videos/American\ Horror\ Story\ Season\ 1\ Complete\ 480p\ BZINGAZ/american.horror.story.s01e11.720p.hdtv.x264-compulsion.mkv
Error: Load failed

E quando eu copio o comando para outra janela de terminal, ele funciona. Como isso pode ser? E como isso pode ser resolvido?

Outra atualização:

O problema parece estar relacionado aos espaços no caminho. O arquivo da área de trabalho envia o caminho para o script bash com o parâmetro% u. E como a pasta tem alguns espaços, eles são convertidos em% 20 No script eu os converto de volta para "\". Se eu testar minhas coisas com um arquivo que não tenha espaços, ele funciona (!!!).

Mas os espaços fazem parte da vida. Como contornar isso?

E outra atualização:

Eu fiz isso! Com um pouco de enganar, mas funciona. Eu adicionei algumas linhas no script para substituir todos os espaços por sublinhados no sistema de arquivos:

#!/bin/bash
# replace all spaces by underscores in the Videos-folders and -files:
find /home/joost/Videos/ -name "* *" -type d | rename 's/ /_/g'    # do the directories first
find /home/joost/Videos/ -name "* *" -type f | rename 's/ /_/g'
filename=
# remove file:// from the file-variable:
filename=${filename:7:$((${#filename}-7))}
# new films may contain spaces in the path. They have been replace by underscores. This also needs to happen in the parameter:
filename=${filename//%20/_}
# now we are ready to go:
castnow --address 192.168.0.21 --myip 192.168.0.47 $filename
read

Funciona e estou feliz com isso. Mas se alguém souber contornar os espaços, ficarei feliz em saber.

Atualização 18 de outubro:

Eu descobri como contornar os espaços (e outros caracteres especiais). Primeiro de tudo eu descobri como codificar o parâmetro. Mas o truque para contornar os espaços (e outros caracteres especiais) acaba sendo adicionar "eval" à afirmação. Então a declaração final no meu script é agora:     eval castnow --address 192.168.0.21 --myip 192.168.0.47 $ nomedoarquivo

Então é isso. O único problema remanescente é que o castnow não parece ser capaz de reproduzir arquivos avi. Eu criei um problema para isso no github.

    
por joost hofstede 15.10.2015 / 12:07

1 resposta

0

Você pode definir o aplicativo padrão a ser usado para o tipo de arquivo relevante: Clique com o botão direito em um arquivo de vídeo, selecione "Propriedades", altere a seleção "Abrir com" e pressione OK.

    
por l0b0 15.10.2015 / 13:01