Respuestas:
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 MimeType
campo: esto enumera los tipos MIME compatibles. El Exec
campo 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.list
proporciona la información de los valores predeterminados del sistema. A menos que elija lo contrario, estas son las aplicaciones utilizadas cuando 'Abre' un archivo.
sudo update-desktop-database
Ver 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 :
mimeapps.list se encuentra en $ XDG_DATA_DIRS / aplicaciones. Su propósito es agregar o eliminar asociaciones mime de las aplicaciones. nautilus escribe ~ / .local / share / aplicaciones / mimeapps.list cuando el usuario realiza cambios en el cuadro de diálogo "Abrir con".
mimeapps.list
entradas en el anulan defaults.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 si MimeType=list;
era necesario o no.
mimeapps.list
puede 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.list
asociació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.list
y ahora la aplicación correcta abre el archivo.
~/.config/mimeapps.list
.
mimeapps.list
puede 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:
/usr/share/applications/mimeapps.list
por asociación de usuarios:
~/.local/share/applications/mimeapps.list
La sintaxis es la siguiente:
[Added Associations]
mimetype=desktopfile1;desktopfile2;...;desktopfileN
...
[Removed Associations]
mimetype=desktopfile1;desktopfile2;...;desktopfileN
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.
/usr/share/applications/mimeapps.list
no existe.
mimeapps.desktop
condefaults.desktop
Crear un archivo truecrypt.desktop
en ~/.local/share/applications
las siguientes líneas:
[Desktop Entry]
Encoding=UTF-8
Type=Application
Icon=
Exec=/usr/bin/truecrypt %U
Name=truecrypt
Comment=manage truecrypt volumes
luego edite el archivo ~/.local/share/applications/mimeapps.list
y agregue la siguiente línea:
application/octet-stream=truecrypt.desktop
Descubrí el tipo mime de Truecrypt siguiendo este comando:
file --mime-type -b <any truecrypt filename>
mimeapps.list
ruta de búsqueda
Otros 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 :
El orden de búsqueda para este archivo es el siguiente:
$XDG_CONFIG_HOME/$desktop-mimeapps.list user overrides, desktop-specific (for advanced users)
$XDG_CONFIG_HOME/mimeapps.list user overrides (recommended location for user configuration GUIs)
$XDG_CONFIG_DIRS/$desktop-mimeapps.list sysadmin and ISV overrides, desktop-specific
$XDG_CONFIG_DIRS/mimeapps.list sysadmin and ISV overrides
$XDG_DATA_HOME/applications/$desktop-mimeapps.list for completeness, deprecated, desktop-specific
$XDG_DATA_HOME/applications/mimeapps.list for compatibility, deprecated
$XDG_DATA_DIRS/applications/$desktop-mimeapps.list distribution-provided defaults, desktop-specific
$XDG_DATA_DIRS/applications/mimeapps.list distribution-provided defaults
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 a XDG_DATA_HOME
$XDG_CONFIG_DIRS
: ninguno, añadido a XDG_CONFIG_HOME
Es posible que las versiones anteriores de Ubuntu no funcionen ~/.config
, así que asegúrese de intentarlo ~/.local/share
también.
Comandos como:
xdg-settings set default-web-browser chromium-browser.desktop
xdg-settings get default-web-browser
editará automáticamente esos archivos.
Para todos los usuarios:
/usr/share/applications/defaults.list
Cada usuario tiene un archivo de configuración para anular estos valores predeterminados:
~ / .config / mimeapps.list
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:
xdg-mime
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:
xdg-mime default xnview.desktop image/jpeg
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.desktop
clonando 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:
sed '/^MimeType=/!d; s///; s/;/\n/g' \
/usr/share/applications/{ristretto,geeqie,gthumb}.desktop |sort -u \
|xargs xdg-mime default image-viewer.desktop
Esto examina los .desktop
archivos para cada uno de los espectadores ( Ristretto , Geeqie y GThumb en mi caso), extrae la definición MIME (que está precedida por MimeType=
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 -u
luego elimina las líneas redundantes, luego se entregan xdg-mime
para establecer los nuevos valores predeterminados.
(Si desea probar esto antes de ejecutarlo en vivo, cambiar xargs
a xargs echo
e 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 .desktop
archivo (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.
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.list
mimeinfo.cache
registro de aplicaciones compatibles, que se generan a partir de los .desktop
archivos presentes en /usr/share/applications
y /usr/local/share/applications
, y se pueden regenerar usando update-desktop-database
./etc/gnome/defaults.list
/usr/share/applications
.desktop
archivos, ¿hay un comando para volver a crear esa base de datos MIME para ver nuevas asociaciones en acción?