Esto se hace fácilmente para un solo tipo de archivo, como se respondió en ¿Cómo asociar un tipo de archivo dentro de Wine con una aplicación nativa? , creando un .reg
para el tipo de archivo deseado. Pero esto es solo para AVI. Utilizo algunas aplicaciones de vino (uTorrent, Soulseek, Eudora, por nombrar algunas) que pueden lanzar una amplia gama de archivos. Los archivos adjuntos de correo electrónico, por ejemplo, pueden ser JPG, DOC, PDF, PPS ... es imposible (y no deseable) rastrear todos los tipos de archivos posibles que uno puede recibir en un correo electrónico o descargar en un torrent.
Así que necesito una solución para ser más genérico y amplio. Necesito la asociación de archivos para honrar cualquier aplicación nativa que esté configurada actualmente. Y quiero que esto se haga para todos los tipos de archivos configurados en mi sistema.
Ya he descubierto cómo hacer que la solución sea genérica. Simplemente reemplazando la aplicación iniciada .reg
por winebrowser
, así:
[HKEY_CLASSES_ROOT\.pdf]
@="PDFfile"
"Content Type"="application/pdf"
[HKEY_CLASSES_ROOT\PDFfile\Shell\Open\command]
@="C:\\windows\\system32\\winebrowser.exe \"%1\""
He probado esto y funciona correctamente. Dado que winebrowser lo utiliza xdg-open
como backend y convierte mi ruta de Windows a Unix, se inicia la aplicación correcta (Linux).
Así que necesito un actualizador "por lotes" para el registro de Wine, una especie de wine-update-associations
script que puedo ejecutar cada vez que se instala una nueva aplicación. Quizás una herramienta que pueda:
- Enumerar todos los tipos de Tipos Mime en mi sistema que tienen una aplicación instalada predeterminada asociada
- Extraiga toda la información necesaria (glob, tipo mime, etc.)
- Genere el archivo .REG en el formato anterior
La parte difícil es: he buscado MUCHO para encontrar información sobre cómo se realiza la asociación en Ubuntu 10.10 en adelante, y la documentación es escasa y confusa, por decir lo menos. Freedesktop.org no tiene especificaciones completas, e incluso los documentos de Gnome son obsoletos. Hasta ahora he reunido 4 archivos que contienen información de asociación, pero no tengo idea de qué (o por qué) usar, o cómo usarlos para generar el .reg
archivo:
~/.local/share/applications/mimeapps.list
~/.local/share/applications/miminfo.cache
/usr/share/applications/miminfo.cache
/etc/gnome/defaults.list
¡Cualquier ayuda, guión o explicación sería muy apreciada!
¡Gracias!
fuente
Everything
sí, pero solo quería informarleEDITAR:
Hay un error en el vino sobre esto , que es más una mejora que un error. El punto es tener una
ShellExecute
llamadaxdg-open
, y si no se encuentra, busque los valores predeterminados de gnome y kde. Deberías poder aplicar el parche y finalmente tener la magia :-). Esta solución es más limpia ya que no necesita meterse con el registro.Para ser más completo aquí es cómo parchar y compilar vino desde la fuente .
EDICIÓN FINAL
Actualizo el registro de vinos con el script a continuación para agregar una lista de tipos de archivos comunes.
Puede ampliar la lista para agregar más tipos.
Se utiliza
/usr/bin/gnome-open
en elgstart.exe
archivo, por lo que no funcionará para equipos de escritorio que no sean gnomos tal como está .Pon esto en
conf_wine.sh
:El
gstart.exe
es un script bash ... y es el puente a ambos mundos:Notas:
gstart.exe
en su directorio de trabajo actual antes de ejecutarlo,conf_wine.sh
ya que lo copiará a la.wine
carpeta.gstart.exe
, no tiene que sentarsec:\
.Preguntas frecuentes sobre Wine: ¿Cómo asocio un programa nativo con un tipo de archivo en Wine?
fuente
gnome-open
overxdg-open
, que ya mencioné en la pregunta, y es mucho más portátil. En segundo lugar, codificar algunas extensiones de archivo es insuficiente para mí: como dije, "Necesito la asociación de archivos para honrar cualquier aplicación nativa que esté configurada actualmente. Y quiero que esto se haga para todos los tipos de archivos configurados en mi sistema". Y sé que esto es complicado. Es la "magia" que mencionaste en tu nota # 3 lo que me interesa;)mimeapps.lst
que no he instalado aquí, y algunos apuntan de nuevo a una aplicación Wine (lo que causaría bucles infinitos)He reunido información por todo el lugar y he encontrado que lo siguiente funciona:
He creado un archivo llamado ~ / .wine / drive_c / gstart.exe
con lo siguiente :
Entonces: Creé un archivo llamado linuxnative.reg en mi ~ / bin
con lo siguiente :
entonces haces un
regedit linuxnative.reg
Espero que esto ayude.
fuente
gstart.exe
guión.