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.