¿De dónde obtiene Firefox las aplicaciones "pnetworkingeterminadas" para abrir files?

Por defecto, Firefox (33.0) en mi FreeBSD 11.0-CURRENT tiene la aplicación pnetworkingeterminada para abrir files PDF configurados en Inkscape. Firefox restring mi elección anterior, como se muestra , en el dialog "¿Qué debería hacer Firefox con este file?", Por lo que hasta hace poco estaba confundido de dónde venía esta configuration, pero casi lo ignoré porque apenas me preocupaba.

Sin embargo, recientemente comencé a usar Zotero como mi database de literatura. Zotero funciona como un complemento de Firefox, e ignora las elecciones realizadas en mis preferences de Firefox para abrir files PDF con confirmación o preguntarme qué hacer con ellos, y simplemente los abre usando Inkscape. Esto me hizo tratar de hacer un seguimiento de este elemento de configuration particular de Firefox, pero no pude encontrar dónde se establece ese valor pnetworkingeterminado.

No pude encontrar la cadena Inkscape (o inkscape ) en ningún file relacionado con Firefox en mi directory personal.

Un enlace a una "pregunta similar" (el comportamiento de las aplicaciones por defecto de xdg-open -sin relación obvia, pero algunos experimentos demostraron que el comportamiento es de hecho equivalente al de xdg-open ) me condujo más profundo en el agujero del conejo. Si bien Firefox no confía ni henetworkinga reglas de xdg-open , utiliza los files de especificación MIME como lo hace xdg-open .

En function del usuario, el comportamiento de apertura de MIME se configura mediante el file de especificación ~/.local/share/applications/mimeapps.list .

Para mí, este file contiene solo unos pocos protocolos razonables y files HTML (y similares) conectados a userapp-Firefox-??????.desktop , pero podría agregar fácilmente una línea como

 application/pdf=evince.desktop 

para resolver ese problema por usuario. Si el file aún no existe, asegúrese de agregar un encabezado de sección, como

 [Default Applications] application/pdf=evince.desktop 

Más profundo, los types de mime se definen en /usr/local/share/applications/mimeinfo.cache (esto puede ser /usr/share/… si no está en un sistema FreeBSD), que enumera application/pdf=inkscape.desktop;evince.desktop; . Tanto evince.desktop como inkscape.desktop en esa carpeta contienen MimeType=[…]application/pdf;[…] .

mimeinfo.cache se genera automáticamente a partir de los types de mime enumerados en .desktop files .desktop sin ningún order bien definido, por lo que tendrá que eliminar el tipo de mime de PDF de Inkscape y regenerar el caching utilizando update-mime-database , o generar un mimeapps.list (ya sea globalmente en /usr/local/share/applications/ , o para su usuario en ~/.local/share/applications/mimeapps.list ).

En Firefox 38.8.0 ESR, en Debian Lenny con GNOME 2, descubrí que la aplicación asociada a través de XDG (descrita en la respuesta de OP ) se usa solo al abrir un file descargado de Descargas en la Biblioteca.

E incluso allí, la implementación da resultados inconsistentes con xdg-open ya que ignora las routes específicas de GNOME (en mi caso /usr/share/gnome/applications/defaults.list , que es un enlace simbólico a /etc/gnome-vfs-2.0/defaults.list ). Tuve que especificar application/pdf=evince.desktop en mi ~/.local/share/applications/defaults.list . (Tenga en count que defaults.list se fusionó en mimeapps.list en versiones más recientes de XDG).

En lugar de XDG, las capacidades de metamail (Mailcap) se usan para resolver la aplicación asociada para los siguientes casos de uso:

  • abrir el file descargado desde el panel de descargas (que se muestra luego de presionar el button de descarga en la barra de herramientas)
  • aplicación pnetworkingeterminada en el menu desplegable en el dialog de descarga de files
  • aplicación pnetworkingeterminada en el menu desplegable en Preferences → Aplicaciones ( about:preferences#applications )

La preference en about:preferences#applications se usa cuando se navega hacia una URL con ese tipo de contenido, a less que la descarga sea forzada.

Mailcap es un mecanismo anterior a XDG y tiene sus raíces en el correo electrónico, de donde también proviene MIME. La utilidad run-mailcap es analógica a xdg-open . Su configuration comprende tres files (en precedencia decreciente):

  • ~/.mailcap – inputs de usuario
  • /etc/mailcap.order – especificación de pedido de inputs de todo el sistema
  • /etc/mailcap – inputs de todo el sistema (el mismo formatting que las inputs de usuario)

Juntos producen una list de inputs de una línea que especifican la aplicación que se utilizará para cualquier tipo MIME dado. Las inputs se combinan de arriba hacia abajo, por lo que lo primero pasa a tener prioridad.

Para realizar un cambio de prioridad de inputs en todo el sistema, debe editar /etc/mailcap.order y ejecutar update-mime .

Para anular algunas de las inputs o especificar la suya propia, a nivel de todo el sistema, necesita editar la sección superior (destinada a las inputs creadas manualmente) de /etc/mailcap y ejecutar update-mime . Ver los comentarios en la sección superior.

Para inputs y anulaciones de usuarios, use ~/.mailcap . Los cambios surten efecto inmediatamente. No ~/.mailcap.order existe; si desea cambiar la prioridad de las inputs, vuelva a orderarlas físicamente (si están en ~/.mailcap ), o ~/.mailcap con la versión preferida (si están en /etc/mailcap ).

Ver man update-mime , man mailcap y man mailcap.order .

Tenga en count que algunas aplicaciones usan utilidades genéricas (como x-www-browser o pager ) en lugar de la detección de la aplicación preferida. Es posible que necesite usar update-alternatives o un mecanismo similar para elegir la implementación preferida de una utilidad genérica en su distribución. O bien, para anular una alternativa preferida de todo el sistema para un usuario específico, establezca variables de entorno como EDITOR (o VISUAL ), PAGER y BROWSER . Son compatibles con sensible-browser y otras herramientas, a menudo más específicas (por ejemplo, git commit utiliza EDITOR y VISUAL ).

    Intereting Posts