Queria abrir um arquivo (arquivo .pdb: formato da estrutura da proteína, não importa) com um clique duplo.
O "open with" é direcionado manualmente para executar o "pymol" (um programa que abre o formato .pdb) com o Ubuntu Tweak.
No entanto, descobri que o diretório de trabalho é $ HOME.
Como outros arquivos no diretório que abri, é crucial que eu queira acessá-los.
Eu acho que o "pymol" é executado em $ HOME enquanto o caminho absoluto do "arquivo pdb" (arquivo clicado duas vezes) é passado como argumento.
Eu acho que este é um problema geral e faça uma pergunta:
Como posso deixar o sistema alterar o "diretório de trabalho" para o "diretório em que cliquei no arquivo" e executar um programa?
fonte
~
corretamente. Você não precisa do bash -c se usar o caminho direto / home / marc.cd "%k"
que não funcione. Mas você pode usarcd "$(dirname %k)"
.&&
está executando algo relativo a~
?Nenhuma das soluções acima funcionou no meu debian. Também
%d
está obsoleto. Consulte Especificação de entrada na área de trabalho .Então, eu estou usando o seguinte script bash para executar pymol. Primeiro, você precisa criar o seguinte arquivo de script bash e salvá-lo
/usr/local/bin/run_pymol.sh
. Salvei o arquivo/usr/local
porque parece quexdg-open
ele não entende o que é o diretório HOME ou assim por diante.Segundo, dê a permissão executável para esse arquivo. Abra um terminal e digite os seguintes comandos para dar uma permissão e confirmar.
Por fim, modifique seu
pymol.desktop
arquivo da seguinte maneira e seu pymol será iniciado no diretório em que o primeiro arquivo especificado está localizado.Espero que ajude vocês :-)
fonte
Path=/my/path
e isso funcionou muito bem.Path - If entry is of type Application, the working directory to run the program in.
Não entendo por que a solução lá em cima é tão votada, faz algo totalmente diferente. Ele altera o diretório de trabalho para aqueles onde está o arquivo .desktop, enquanto a pergunta estava prestes a mudar o diretório de trabalho para aqueles com arquivo (s) aberto (s).
Minha solução:
Lembre-se de que definir variáveis env para arquivos .desktop é diferente, assim
fonte
Você pode acessar
/usr/share/applications
e encontrar o nome apropriadofile.desktop
sempre que abrir um tipo de arquivo específico. Em seguida, edite-o eexec
adicione na linhacd PATH &&
o início da linha.fonte
ESTÁ BEM -
não funcionou para mim, pois PATH não está definido para apontar para o caminho de% F. As únicas variáveis disponíveis em qualquer arquivo da área de trabalho de aplicativos são:
Aí está:% d é o diretório único que você está procurando, pois não faz sentido mudar para vários diretórios. Então vá para / usr / share / applications e edite o arquivo application-name.desktop (no seu caso, pymol.desktop); você precisa ter privilégios de superusuário para fazer isso. Em seguida, localize a linha que começa com "Exec =". Provavelmente lê
(No seu caso, Exec = pymol% F). Mude esta linha para
Salve esse arquivo da área de trabalho e, da próxima vez que você clicar em um arquivo .pdb, seu diretório de trabalho deverá ser aquele em que este arquivo .pdb está, para que o pymol possa ver todos os seus arquivos.
Claro, você também pode iniciar o pymol a partir da linha de comando depois de navegar primeiro para o diretório em que seus arquivos estão, mas acho que você queria uma solução de GUI, portanto, é necessário fazer uma pequena edição :-)
fonte