Ação personalizada para abrir uma instância de programa para cada pasta selecionada?

1

No Thunar, quero poder abrir pastas com o Ex Falso .

Eu criei uma ação personalizada com o comando /usr/bin/exfalso %f . Isso funciona quando eu seleciono uma única pasta. Quando seleciono várias pastas, quero que o Thunar abra uma instância Ex Falso para cada pasta selecionada.

Eu tentei os parâmetros %F e %N , mas o Ex Falso foi aberto apenas para a primeira pasta.

    
por unor 09.11.2013 / 00:28

1 resposta

2

Gostaria de saber se, em vez de tentar fazê-lo dessa maneira, você criou um script de shell que usou o argumento %f como o comando personalizado e fez algo parecido com isto internamente:

#!/bin/bash

for i in "$@"; do
  echo "/usr/bin/exfalso $i"
done

Isso gerará uma série de comandos como este:

$ ./myexfalso_lancher.bash 1 2 3 "4 5"
/usr/bin/exfalso 1
/usr/bin/exfalso 2
/usr/bin/exfalso 3
/usr/bin/exfalso 4 5

Qual é o que você quer. Para fazer isso ao vivo, você só precisa alterar a linha echo para isso:

/usr/bin/exfalso "$i"

Problemas com essa abordagem com os quais você pode ou não se importar.

  1. Se os arquivos / pastas com os quais você está lidando contiverem espaços, o loop for poderá não funcionar se os argumentos de %f não forem citados. Mudar isso para um loop while com uma instrução read pode ser capaz de lidar melhor com espaços em nomes de arquivos ou pastas.
  2. Não tenho 100% de certeza de qual deve ser o argumento do comando que você passa para o script. Eu estou supondo que é %f , mas você pode precisar usar outra coisa.
  3. Você pode querer colocar alguns guardas neste script que limitam quantos exfalso ele pode lançar. Um simples contador passando pelo loop poderia fazer isso. Uma vez que chega a dizer 10, poderia sair.
por 09.11.2013 / 03:35

Tags