El administrador de archivos (Nautilus, por defecto) usa el tipo MIME de un archivo para determinar con qué programa abrirlo. Cuando se instala una aplicación, puede especificar qué tipos de MIME puede abrir y el comando que se usará para abrir los archivos en el archivo .desktop que se coloca /usr/share/applications. Este es el archivo utilizado para menús, accesos directos de escritorio, etc.
Por ejemplo, GIMP tiene el siguiente archivo .desktop:
[Desktop Entry]
Version=1.0
Type=Application
Name=GNU Image Manipulation Program
GenericName=Image Editor
Comment=Create images and edit photographs
Exec=gimp-2.7 %U
TryExec=gimp-2.7
Icon=gimp
Terminal=false
Categories=Graphics;2DGraphics;RasterGraphics;GTK;
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=GIMP
X-GNOME-Bugzilla-Component=General
X-GNOME-Bugzilla-Version=2.7.2
X-GNOME-Bugzilla-OtherBinaries=gimp-2.7
StartupNotify=true
MimeType=application/postscript;application/pdf;image/bmp;image/g3fax;image/gif;image/x-fits;image/pcx;image/x-portable-anymap;image/x-portable-bitmap;image/x-portable-graymap;image/x-portable-pixmap;image/x-psd;image/x-sgi;image/x-tga;image/x-xbitmap;image/x-xwindowdump;image/x-xcf;image/x-compressed-xcf;image/tiff;image/jpeg;image/x-psp;image/png;image/x-icon;image/x-xpixmap;image/svg+xml;application/pdf;image/x-wmf;image/jp2;image/jpeg2000;image/jpx;image/x-xcursor;
Vea el MimeTypecampo: esto enumera los tipos MIME compatibles. El Execcampo le dice al sistema que use el comando gimp-2.7 %U, reemplazando '% U' con los archivos para abrir. (Tenga en cuenta que GIMP 2.7 es una versión que he instalado desde un PPA, por lo que es superior a la versión actual en los repositorios de Ubuntu).
Cuando se instala el paquete de la aplicación, el sistema extrae estos datos de tipo MIME en una base de datos más fácilmente accesible porque buscar en cada archivo .desktop tomaría demasiado tiempo si se realiza cada vez que se abre un archivo.
Esto le dice al sistema qué aplicaciones se pueden usar para ese tipo MIME y proporciona las aplicaciones en la lista 'Abrir con'. El valor predeterminado se define en otra parte. El archivo /usr/share/applications/defaults.listproporciona la información de los valores predeterminados del sistema. A menos que elija lo contrario, estas son las aplicaciones utilizadas cuando 'Abre' un archivo.
/usr/share/applications.desktoparchivos, ¿hay un comando para volver a crear esa base de datos MIME para ver nuevas asociaciones en acción?sudo update-desktop-databaseVer jarrpa.net/2011/10/28/…/usr/local/share/applications. Creo que GTK también mira allí, por defecto. Lo hace en mi sistema, pero se ha actualizado (no reinstalado) desde Ubuntu 7.04 más o menos.Para complementar la excelente respuesta de dv3500ea, me gustaría agregar información sobre lo que sucede cuando cambia sus asociaciones.
Mientras que defaults.list (que puede encontrar escribiendo 'localizar defaults.list') proporciona la lista de aplicaciones asociadas con cada tipo MIME, las personalizaciones que realice se almacenan en su directorio de inicio, en ~ / .local / compartir / aplicaciones / mimeapps.list. Entonces, si agrega o elimina asociaciones, o cambia la asociación predeterminada, este archivo se actualiza.
La Guía de administración del sistema de escritorio GNOME en http://library.gnome.org/admin/system-admin-guide/stable/ no parece discutir mimeapps.list, pero encontré la siguiente descripción en http: //live.gnome .org / SysAdminGuideUpdate :
fuente
mimeapps.listentradas en el anulandefaults.list.~/.local/share/applications/mimeapps.list, y ejecutar procesos como pcmanfm recogió los cambios sin reiniciar. (mplayer.desktop solo ejecuta mplayer. Supongo que tenía uno instalado en una vieja instalación de mplayer en / usr / local. IDK siMimeType=list;era necesario o no.mimeapps.listpuede estar en cualquier lugar en la siguiente ruta de búsqueda: specifications.freedesktop.org/mime-apps-spec/...Descubrí que en mi sistema (Debian Jessie) también hay una
~/.config/mimeapps.listasociación que creé accidentalmente para abrir un tipo de archivo específico con gedit. Ninguna de las formas estándar de corregir esto (configuración de aplicación predeterminada, Thunar's open with property) lo reflejaba, pero gedit era la aplicación predeterminada.Pude eliminar la línea
~/.config/mimeapps.listy ahora la aplicación correcta abre el archivo.fuente
~/.config/mimeapps.list.mimeapps.listpuede estar en cualquier lugar en la siguiente ruta de búsqueda: specifications.freedesktop.org/mime-apps-spec/...Encontré este enlace sobre la asociación predeterminada, podría ser útil. https://wiki.archlinux.org/index.php/Default_Applications
for global association:
por asociación de usuarios:
La sintaxis es la siguiente:
La sección [Asociaciones agregadas] se utiliza para especificar aplicaciones preferidas (predeterminadas) en preferencia decreciente. lo que significa que desktopfile1 es el más preferido y desktopfileN es el menos preferido.
La sección [Asociaciones eliminadas] se utiliza para eliminar explícitamente cualquier asociación heredada anteriormente.
fuente
/usr/share/applications/mimeapps.listno existe.mimeapps.desktopcondefaults.desktopPude establecer una asociación como esta:
También puede eliminar asociaciones y hacer otras cosas:
man xdg-mimeNo necesitaba correr
sudo update-desktop-database.fuente
Crear un archivo
truecrypt.desktopen~/.local/share/applicationslas siguientes líneas:luego edite el archivo
~/.local/share/applications/mimeapps.listy agregue la siguiente línea:Descubrí el tipo mime de Truecrypt siguiendo este comando:
fuente
mimeapps.listruta de búsquedaOtros han mencionado este archivo, pero ninguno ha explicado su ubicación con precisión.
El estándar freedesktop.org dice en https://specifications.freedesktop.org/mime-apps-spec/mime-apps-spec-1.0.html :
y luego los valores predeterminados para esas variables de entorno se dan en https://specifications.freedesktop.org/basedir-spec/basedir-spec-0.6.html :
$XDG_DATA_HOME:$HOME/.local/share$XDG_CONFIG_HOME:$HOME/.config$XDG_DATA_DIRS: ninguno, añadido aXDG_DATA_HOME$XDG_CONFIG_DIRS: ninguno, añadido aXDG_CONFIG_HOMEEs posible que las versiones anteriores de Ubuntu no funcionen
~/.config, así que asegúrese de intentarlo~/.local/sharetambién.Comandos como:
editará automáticamente esos archivos.
fuente
Para todos los usuarios:
Cada usuario tiene un archivo de configuración para anular estos valores predeterminados:
consulte también https://specifications.freedesktop.org/mime-apps-spec/mime-apps-spec-1.0.1.html para conocer los lugares que podrían usarse para anular los valores predeterminados.
Debe conocer el tipo mime del archivo que desea cambiar su asociación.
Además, todas las asociaciones se pueden manejar y cambiar en la línea de comandos usando:
fuente
Freedesktop.org (anteriormente llamado X Desktop Group, por lo tanto, la abreviatura "XDG") es el grupo que actualmente maneja estándares X como este ( obtenga más información en Wikipedia ).
La respuesta de warvariuc ya menciona el uso de xdg-mime como:
Después de mucho jugar con editores de imágenes y espectadores, terminé con diferentes visores para diferentes tipos de imágenes casi sin consistencia, especialmente entre los tipos de imágenes más raros.
Tomé el comando anterior y lo asigné a cada uno de los tipos MIME controlados por los visores de imágenes y luego creé uno nuevo
image-viewer.desktopclonando uno de ellos (esto es opcional, simplemente puede reutilizar su favorito). A continuación, verifiqué manualmente que ninguno de los tipos MIME sería incompatible con mi nueva aplicación preferida. Finalmente, configuré esa aplicación como predeterminada para todos los tipos MIME de otras aplicaciones:Esto examina los
.desktoparchivos para cada uno de los espectadores ( Ristretto , Geeqie y GThumb en mi caso), extrae la definición MIME (que está precedida porMimeType=y luego contiene una lista delimitada por punto y coma), elimina la etiqueta del prefacio (previamente coincidente) y divide la lista en una entrada por línea.sort -uluego elimina las líneas redundantes, luego se entreganxdg-mimepara establecer los nuevos valores predeterminados.(Si desea probar esto antes de ejecutarlo en vivo, cambiar
xargsaxargs echoe imprimirá el comando resultante en lugar de ejecutarlo.)Esta técnica debería funcionar para cualquier cosa que desee reclamar para una aplicación de destino. Ni siquiera necesita crear un nuevo
.desktoparchivo (puede usar uno existente). Hice ese paso adicional para que cuando cambie inevitablemente mi lealtad entre los previsualizadores de imágenes, simplemente necesite cambiar ese archivo.fuente
En Ubuntu 18.04, he encontrado que el orden de precedencia es el siguiente, de más fuerte a más débil:
~/.local/share/applications/defaults.list/usr/share/applications/defaults.list~/.config/mimeapps.list("Abrir con otra aplicación" actualizará esto)~/.local/share/applications/mimeapps.listmimeinfo.cacheregistro de aplicaciones compatibles, que se generan a partir de los.desktoparchivos presentes en/usr/share/applicationsy/usr/local/share/applications, y se pueden regenerar usandoupdate-desktop-database./etc/gnome/defaults.listfuente