Alternative method for opening Smarty templates with HTML syntax highlighting in gedit

Here is an update to a previous post regarding how to get gedit to recognise Smarty template *.tpl files. I’ve found that gedit prefers to use the mime type to decide what type of file it is and therefore what syntax highlighting to apply.

After a little investigation I found that most of my .tpl files were being identified as text/plain in Nautilus (found by right-clicking on the file and selecting properties, on the basic tab the type field will tell you the mime type nautilus is seeing it as)

My new solution to this problem is to convince nautilus (and gedit) that the *.tpl files are in fact HTML files and therefore syntax highlight them in the same way, and here’s how to do it:

  1. Make a backup of your freedesktop.org.xml file with the following commands:

    cd /usr/share/mime/packages
    sudo cp freedesktop.org.xml freedesktop.org.xml.backup

  2. Edit the freedesktop.org.xml file as a super user:

    sudo gedit /usr/share/mime/packages/freedesktop.org.xml

  3. Search the file for “*.php” (without the quotes). You should find a section with:

    <glob pattern="*.php"/>
    <glob pattern="*.php3"/>
    <glob pattern="*.php4"/>

  4. Add a new glob entry for tpl files by adding the line:

    <glob pattern="*.tpl"/>

  5. Save and close the file then run the following command which should be fairly self-explanatory:

    sudo update-mime-database /usr/share/mime

  6. Nautilus and gedit should now recognise .tpl files as html files and syntax highlight as such

The only drawback with this option (and I consider it a rather minor inconvenience) is that double clicking your tpl files will try and open them in Firefox by default now, you can change this to open in gedit by default but then all your .html and .htm files will open in gedit by default too.

You choose which you prefer, I personally have no problem leaving them to open in Firefox by default since I rarely double click tpl files in nautilus, I usually use the file browser plugin in gedit.

Thanks to a suggestion by Sudhanshu I’ve edited the post to add the tpl entry to the php section of the freedesktop.org.xml file instead of the html section. The benefit of this is that you can now double click tpl files and have them open in the same application as php files (usually gedit) while html files will still open in your browser.

As always comments are appreciated on whether this was helpful or if you’ve found a better way.

15 thoughts on “Alternative method for opening Smarty templates with HTML syntax highlighting in gedit

  1. Pingback: c3b» » Smarty template syntax highlighting with gedit

  2. @Sudhanshu That’s a good idea, I’ve now done this myself as it seems like a more elegant solution. I should’ve thought of it myself. I’m also going to update the post to make the suggestion

    Thanks

  3. Thanks for the great how-to. It was driving me crazy to have to select the highlighting syntax manually whenever I was working with tpl files.

  4. Pingback: Smarty template file with HTML Syntax Highlight in Gedit | Just For Fun With Us

  5. Pingback: 3f blog » Reflexiones y descubrimientos relacionados con mime-type, gedit y smarty

  6. Hi,

    This solution is not working for ubuntu 10.04 LTS and also script provided at comment is also not working.

  7. Hi Tejas,

    I’m afraid I can’t help. This post is now 3.5 years old and I haven’t used Ubuntu since 8.10 after which I switched to OSX and now use Eclipse.

    If you do happen to find a solution I would be more than happy to update the contents of this post and/or link to another site with a more up to date fix. As it is I don’t have the time right now to find a fix myself.

    Sorry I can’t be of any more help.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>