Eu tento criar uma ação de serviço de arquivo desktop, no KDE, para dividir arquivos flac por sua sugestão e gostaria que ele abrisse algum terminal para exibir o processo, idealmente esperasse que eu o fechasse (para verificar o potencial erros).
Até agora eu tenho um arquivo da área de trabalho como este:
[Desktop Entry]
Type=Service
Encoding=UTF-8
ServiceTypes=KonqPopupMenu/Plugin,audio/x-flac,audio/x-flac+ogg,audio/x-oggflac
Icon=soundconverter
Actions=SplitFlacByCue;
[Desktop Action SplitFlacByCue]
Terminal=true
Name=split flac by cue
Icon=soundconverter
Exec=bash -c '$(file=$(basename "%f"); filename="${file%.*}"; shntool split -f \'$filename.cue\' -o \'flac flac --output-name=%f -\' -t \'%n - %p - %t\' \'$filename.flac\')'
Não vejo nenhum terminal, nenhum erro, ele falhará devido à parte do shntool, onde não consigo passar pela variável $ filename. Eu tentei muitas variantes, mas parece que não entendi direito.
Alguém poderia me ajudar, por favor? Obrigado.
[Editar]
Simplificando: Eu preciso de um arquivo de desktop com um script no parâmetro Exec para dividir um flac por sugestão com o mesmo nome (exceto para extensão, é claro).
Deve estar presente ao clicar com o botão direito em um arquivo flac. O desafio aqui é como fazê-lo em uma entrada do Exec em vez do arquivo .sh.
Eu cheguei a isto:
Exec=xterm -e 'file=$(basename "%f"); filename="${file%.*}"; echo $filename; shntool split -f \""${filename}".cue\" -o '\''flac flac --output-name=%f -'\'' -t '\''%n - %p - %t'\'' \""${filename}".flac\"; bash\'
Mas quando a ação é acionada, ocorre um erro genérico, dizendo que não é possível analisar a entrada:
Error processing Exec field in
O problema está na parte shntool, se eu remover isso, ele abre o xterm e imprime os valores das variáveis.
Uma segunda tentativa:
Exec = xterm -e 'file = $ (nome de base "% f"); filename="$ {arquivo%. *}"; echo $ filename; shntool split -f \ "" $ nome do arquivo ".cue \" -o "'" flac flac --nome da saída =% f - "'" -t "'"% n -% p -% t "'" \ "" $ filename ".flac \"; bash '
resulta em:
author - title shntool [split]: warning: cannot open non-existent
file: ["author - title.flac"] shntool [split]: error: cannot continue
due to error(s) shown above
Ainda assim, não entendi o motivo desse erro.
[Após uma semana ...]
Aqui está a solução:
[Desktop Entry]
Type=Service
Encoding=UTF-8
ServiceTypes=KonqPopupMenu/Plugin,audio/x-flac,audio/x-flac+ogg,audio/x-oggflac
Icon=soundconverter
Actions=SplitFlacByCue;
[Desktop Action SplitFlacByCue]
Terminal=true
Name=split flac by cue
Icon=soundconverter
Exec=xterm -e 'path=$(dirname "%f"); echo $path; file=$(basename "%f"); filename="${file%.*}"; echo $filename; shntool split -D -f """$filename".cue"" -o "'"flac flac --output-name=%%f -"'" -t "'"%%n - %%p - %%t"'" """$filename".flac""; bash'