
In contrast to Matlab for Windows and macOS, Matlab for Linux does not automatically make the associations with its related files .m
, .mat
, and .fig
. This post describes the how to do the association, it includes: 1. defining MIME types, 2. setting icons, and 3. creating desktop entries (.desktop
files to define Matlab as the application for these MIME types). I'm using Cinnamon as desktop environment (thus it should work in Gnome without changes), and Arch Linux distribution.
Matlab shortcut in main Menu and Desktop
This is not necessary for the association, but it may play useful.
-
Copy Matlab icon file from the Matlab installation directory to the shared icons
1
# cp /usr/local/MATLAB/R2020b/bin/glnxa64/cef_resources/matlab_icon.png /usr/share/icons
-
Create a
matlab_2020b.desktop
file at/usr/share/applications
1 2 3 4 5 6 7
[Desktop Entry] Type=Application Name=MATLAB 2020b Icon=/usr/share/icons/matlab_icon.png Exec=/usr/local/MATLAB/R2020b/bin/matlab -desktop Categories=Development Terminal=false
-
Change the permissions to be executable:
1
# chmod +x matlab_r2020b.desktop
-
For the Desktop shortcut, just copy this
matlab_2020b.desktop
to~/Desktop
In this post describes the how to do the association, it includes: defining MIME types, setting icons, and creating desktop entries (.desktop
files to define Matlab as the application for these MIME types). I'm using Cinnamon as desktop environment (thus it should work in Gnome without changes), and Arch Linux distribution.
Associate .m
, .mat
and .fig
files with Matlab
1. MIME types
The MIME type for Matlab .m
files is part of the freedesktop.org.xml
file which is present in /usr/share/mime/packages/
. Thus let's create the MIME types for .mat
and .fig
.
-
Create the file
/usr/share/mime/packages/matlab-typemimes.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'> <mime-type type="image/x-matlab-fig"> <comment>MATLAB figure</comment> <magic priority="50"> <match value="MATLAB" type="string" offset="0"/> </magic> <glob pattern="*.fig" weight="60"/> <generic-icon name="matlab-fig"/> </mime-type> <mime-type type="application/x-matlab-data"> <comment>MATLAB data file</comment> <magic priority="50"> <match value="MATLAB" type="string" offset="0"/> </magic> <glob pattern="*.mat" weight="60"/> <generic-icon name="matlab-mat"/> </mime-type> </mime-info>
This MIME definition is based on https://lists.freedesktop.org/archives/xdg/2010-October/011673.html
-
Update MIME database :::bash # update-mime-database /usr/share/mime
2. Icons
The icons for .mat
and .fig
files is set to be the same as for .m
files. In /usr/share/icons/
, copy all the instances of text-x-matlab.svg
as image-x-matlab-fig.svg
and application-x-matlab-data.svg
. And Run gtk-update-icon-cache
for each of the icon directories.
1 2 3 |
|
3. Desktop entries
Different Matlab files are called in different way by MATLAB:
1 2 3 |
|
As such, it is necessary to create a desktop entry file for each MIME type reflecting how Matlab is called to open such MIME files. These files will be created in /usr/share/applications
File matlab_2020b_m.desktop
1 2 3 |
|
File matlab_2020b_mat.desktop
1 2 3 |
|
File matlab_2020b_fig.desktop
1 2 3 |
|
The NoDisplay=true
prevents that these desktop entry files appear in the main Menu.
Conclusion
Now the different Matlab files are associated with Matlab and opening them in the file explorer creates a new instance of Matlab and opens the selected file. Opening the file occurs in a new instance of Matlab (link), In the future I'll look for alternatives to open the file in the current Matlab instance.
References
MIME types
Desktop entries
Matlab MIME types
Adding MIME types in Gnome
Comments
comments powered by Disqus