Reflexiones y descubrimientos relacionados con mime-type, gedit y smarty

Siempre me molestó que para hacer que gedit reconozca un determinado tipo de archivos de una determinada manera, tenía que modificar archivos en el directorio /usr

Particularmente lo que me molestaba tener que actualizar eran los tipos MIME que identifican un determinado archivo, con un determinado tipo y gedit como nautilus utilizan para saber como abrir cada archivo, de que forma colorearlo, etc. Para modificar ese directorio se necesita permisos de administrador y siempre me pareció que debería haber una forma de hacerlo desde mi cuenta de usuario limitado.

Hoy, que estaba trabajado con PHP, queria abrir unos archivos de Smarty que tienen extensión tpl, y que se colorearan automáticamente como html, que es el lenguaje más cercano que reconoce (o al menos de los que vienen por defecto) y decidí buscar en internet una forma de hacerlo y encontré dos páginas, por un lado el blog de c3b en un artículo titulado Alternative method for opening Smarty templates with HTML syntax highlighting in gedit y también en la página de gnome bajo el nombre Modifying MIME types

Combinando el conocimiento de ambos sitios, logré que al hacer doble-click sobre un archivo tpl, se me abra automáticamente el gedit (y no firefox!) y se me coloree automáticamente la sintaxis como PHP

¿Cual fue el procedimiento? Fácil.

Lo primero que hice fue crear la carpeta ~/.local/share/mime/packages

En esa carpeta creé un archivo llamado Overrides.xml con el siguiente contenido

<?xml version='1.0' encoding='utf-8'?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
    <mime-type type="application/x-php">
        <glob pattern="*.tpl"/>
    </mime-type>
</mime-info>

Luego ejecuté el comando update-mime-database ~/.local/share/mime

La lógica detras de este procedimiento, es que en el archivo Overrides.xml puedo crear nuevas asociaciones, o modificar exisntes. En este caso en particular, se le informa al sistema que los archivos .tpl son archivos PHP, y por lo tanto lo colorea automáticamente como PHP

Y todo esto sin usar sudo ni una sola vez 🙂


3 Responses to “Reflexiones y descubrimientos relacionados con mime-type, gedit y smarty”

  1. Buena solución!
    Aunque llegué acá buscando como highlightear (perdon por castellanizar verbos ingleses) un archivo smarty. O sea colorear los tags con Curly Brackets.
    De todas maneras me pareció muy buena metodología.

    Una acotación al margen:
    A pesar de todo, yo no trataría a los TPL como PHP sino como HTML. Más que nada porque los “recortes” (plugin) de tags HTML no los toma si abris el archivo como PHP

  2. Me alegro que te haya gustado la solución Juan.

    La verdad, yo también buscaba lo mismo que vos, y aun no estoy conforme con esta solución, pero me parece mejor esto que la alternativa de no tener nada. Algún día tendre el tiempo, las ganas, y el conocimiento de hacer algun archivos de syntaxis para Smarty, pero por ahora no puedo.

    Tu comentario de que sería mejor como HTML, esa era mi idea original, sin embargo uno de los links que leí (y cité en el texto) decía que si lo asociaba como html, en lugar de abrirlo gedit, seria firefox o el explorador que este configurado como default, el que abriría el archivo.

    Igualmente, la verdad no lo probé.. solo confié en lo que lei. Sería bueno probarlo y ver que sucede.. o si se puede asociar siempre la extensión tpl a gedit aunque el mime-type sea el de html.

  3. Estoy usando mucho gedit para programar, habia empezado a tunearlo agregando recortes pero deje de hacerlo para investigar lo siguiente ¿se puede agregar una categoria en recortes? seria algo asi como lo que tu hiciste, primero que el sistema te lo reconozca, pero a su ve en recortes tendrias el tipo de archivo que se definio y se podrian hacer recortes especificos para ese tipo de archivos.
    Bueno no se si al hacer los pasos que especificas en este articulo sucede esto, no quiero agregar un tipo de archivo nuevo si no le voy a poder dar utilidad desde los recortes de gedit, si puedes verificarme esto lo agradeceria mucho.

    Saludos cordiales.

Discussion Area - Leave a Comment