Modificar aplicaciones predeterminadas en Linux

mime-types-and-extensions-sql-20110824082611

Aunque algunos entornos de escritorio como Gnome, KDE o Cinnamon ofrecen un panel amigable (ver ejemplo de Cinnamon) para modificar las aplicaciones predeterminadas del sistema, este tipo de paneles suelen quedarse cortos al ofrecer opciones avanzadas respecto a diversos tipos de archivos.

Selection_001
El secreto de la definición de aplicaciones predeterminadas no es más que asociación por MIME Types. Los MIME Types son cadenas de texto que describen el contenido de un determinado archivo, cuyo origen puede ser trazado hacia los primeros dias del protocolo SMTP

En sistemas Linux las asociaciones entre tipo de archivo <-> aplicación predeterminada suelen construirse en base a los archivos .desktop almacenados en /usr/share/applications cuyo atributo MimeType describe los tipos de archivos soportados por el programa, para dar un ejemplo véase el archivo .desktop de Easytag.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[Desktop Entry]
Name=EasyTAG
GenericName=Sound File Metadata Editor
GenericName[es]=Editor de metadatos de archivos de sonido
GenericName[pt_BR]=Editor de metadados de arquivo de som
Comment=Edit sound file metadata
Comment[es]=Editar los metadatos de archivos de sonido
Comment[pt_BR]=Edite metadados de arquivo de som
# Translators: Search terms to find this application. Do NOT translate or localize the semicolons! The list MUST also end with a semicolon!
Keywords=mp3;tag;audio;
Keywords[es]=mp3;etiqueta;sonido;
Keywords[pt_BR]=mp3;tag;etiqueta;áudio;audio;som;
Type=Application
Icon=easytag
Categories=GTK;AudioVideo;AudioVideoEditing;Audio;
MimeType=inode/directory;audio/x-mp3;audio/x-mpeg;audio/mpeg;application/ogg;audio/x-vorbis+ogg;audio/x-flac;audio/x-musepack;audio/x-ape;audio/x-speex+ogg;audio/x-opus+ogg;
Exec=easytag %F
Terminal=false
StartupNotify=true

Una vez que cada aplicación instalada en el sistema dispone de un archivo .desktop, el ejecutable update-desktop-database parsea uno a uno los archivos almacenando el resultado final de asociaciones en /usr/share/applications/mimeinfo.cache y a pesar de que este archivo puede ser modificado, la información sera regenerada con cada actualización de paquetes.

Definiendo prioridades

En ocasiones se hace necesario definir prioridades entre N cantidad de aplicaciones que soportan los mismos archivos. Para esto, entornos compatibles con las especificaciones de Freedesktop buscan estas prioridades en archivos .list como se observa en la siguiente tabla:

Path predeterminado Usualmente definido como Objetivo
$XDG_CONFIG_HOME/$desktop-mimeapps.list $HOME/.config/$desktop-mimeapps.list Prioridad de usuario, por escritorio
$XDG_CONFIG_HOME/mimeapps.list $HOME/.config/mimeapps.list Prioridades de usuarios
$XDG_CONFIG_DIRS/$desktop-mimeapps.list /etc/xdg/$desktop-mimeapps.list Prioridad de sysadmin y distribuciones, por escritorio
$XDG_CONFIG_DIRS/mimeapps.list /etc/xdg/mimeapps.list Prioridad de sysadmin y distribuciones
$XDG_DATA_HOME/applications/$desktop-mimeapps.list $HOME/.local/share/applications/$desktop-mimeapps.list Compatibilidad, por escritorio
$XDG_DATA_HOME/applications/mimeapps.list $HOME/.local/share/applications/mimeapps.list Compatibilidad
$XDG_DATA_DIRS/applications/$desktop-mimeapps.list /usr/local/share/applications/$desktop-mimeapps.list and /usr/share/applications/$desktop-mimeapps.list Específicos de la distribución, por escritorio
$XDG_DATA_DIRS/applications/mimeapps.list /usr/local/share/applications/mimeapps.list and /usr/share/applications/mimeapps.list Específicos de la distribución

Opción A: Definiendo las prioridades con un administrador de archivos

La forma mas fácil de definir estas prioridades es utilizar administradores de archivos como Nemo o Nautilus donde al hacer click derecho y buscar la opción  «Abrir con», se nos ofrece una ventana similar a la siguiente: Selection_002

Como se observa, esta ventana ofrece la opción de establecer la aplicación como predeterminada, ¿fácil no?

Opción B: Edición manual de archivos .list

Si por alguna razón fuese imposible utilizar los administradores de archivos, es también plausible editar manualmente cualquiera de los archivos .list de la tabla anteriormente mostrada. Es buena practica revisar si existe el archivo en ~/.local/share/applications/mimeapps.list antes de crear un archivo nuevo, ya que la mayoría de entornos de escritorio aun lo utilizan.

Por ejemplo para establecer Nemo como el explorador de archivos predeterminado, bastaría con agregar la siguiente linea al archivo antes mencionado

1
inode/directory=nemo.desktop;

Para obtener un listado completo de posibles MIMETypes, puede observarse el contenido del archivo /etc/mime.types

3 respuestas a “Modificar aplicaciones predeterminadas en Linux”

  1. Google Chrome 35.0.1916.153 Google Chrome 35.0.1916.153 GNU/Linux x64 GNU/Linux x64
    Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36

    Interesante post me sera de ayuda

  2. Firefox 40.0 Firefox 40.0 GNU/Linux GNU/Linux
    Mozilla/5.0 (X11; Linux i686; rv:40.0) Gecko/20100101 Firefox/40.0

    Excelente post vere que desruyo en puppy linux XD

  3. Firefox 3.5.3 Firefox 3.5.3 Windows XP Windows XP
    Mozilla/5.0 (Windows; U; Windows NT 5.1; es-ES; rv:1.9.1.3) Gecko/20090824 Firefox/3.5.3 (.NET CLR 3.5.30729)

    Buen artículo, bien documentado y escrito. Gracias por tu tiempo.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *