Quería abrir un archivo (archivo .pdb: formato de estructura de proteína, no importa) haciendo doble clic.
El "abrir con" está dirigido manualmente para ejecutar "pymol" (un programa que abre el formato .pdb) con Ubuntu Tweak.
Sin embargo, descubrí que el directorio de trabajo es $ HOME.
Como otros archivos en el directorio que abrí es crucial, quiero acceder a ellos.
Supongo que el "pymol" se ejecuta en $ HOME mientras que la ruta absoluta del "archivo pdb" (archivo con doble clic) se pasa como argumento.
Supongo que este es un problema general y hacer una pregunta:
¿Cómo puedo dejar que el sistema cambie el "directorio de trabajo" al "directorio donde hice clic en el archivo" y ejecute un programa?
fuente
~
correctamente. No necesita bash -c si usa la ruta directa / home / marc.cd "%k"
lo que no funcionará. Pero puedes usarcd "$(dirname %k)"
.&&
está ejecutando algo relativo~
?Ninguna de las soluciones anteriores funcionó en mi Debian. También
%d
está en desuso. Ver la especificación de entrada de escritorio .Así que estoy usando el siguiente script bash para ejecutar pymol. Primero debe crear el siguiente archivo de script bash y guardarlo
/usr/local/bin/run_pymol.sh
. Guardé el archivo/usr/local
porque parecexdg-open
que no comprende qué es el directorio HOME, etc.Segundo, otorgue el permiso ejecutable a ese archivo. Abra una terminal y escriba los siguientes comandos para otorgar un permiso y confirmar.
Finalmente, modifique su
pymol.desktop
archivo de la siguiente manera y luego su pymol comenzará en el directorio donde se encuentra el primer archivo dado.Espero que les ayude chicos :-)
fuente
Path=/my/path
y eso funcionó bien.Path - If entry is of type Application, the working directory to run the program in.
No entiendo por qué la solución allí arriba fue tan votada, que hace algo absolutamente diferente. Cambia el directorio de trabajo a aquellos donde está el archivo .desktop, mientras que la pregunta estaba a punto de cambiar el directorio de trabajo a aquellos con archivos abiertos.
Mi solución:
Tenga en cuenta que establecer variables env para archivos .desktop es diferente, como así
fuente
Puede ir
/usr/share/applications
y encontrar el correctofile.desktop
que se llama cada vez que abre un tipo de archivo específico. Luego edítelo y en laexec
línea agreguecd PATH &&
al inicio de la línea.fuente
OKAY -
no funcionó para mí ya que PATH no está definido para apuntar a la ruta de% F. Las únicas variables disponibles en cualquier archivo de escritorio de aplicaciones son:
Ahí está:% d es el directorio único que está buscando, ya que no tiene sentido cambiar a varios directorios. Vaya a / usr / share / aplicaciones y edite el archivo nombre-aplicación.desktop (en su caso pymol.desktop); tienes que tener privilegios de superusuario para hacer eso. Luego ubique la línea que comienza con "Exec =". Probablemente se lee
(En su caso, Exec = pymol% F). Cambie esta línea a
Guarde ese archivo de escritorio, y la próxima vez que haga clic en un archivo .pdb, su directorio de trabajo debe ser el único en el que se encuentra este archivo .pdb, para que pymol pueda ver todos sus archivos allí.
Por supuesto, también puede iniciar pymol desde la línea de comandos después de haber navegado por primera vez al directorio donde están sus archivos, pero supongo que quería una solución GUI, por lo que debe editar un poco :-)
fuente