How do I set the default program that I use?

I have tried to open System InfoDefault Program → change my program, but it won't work,

Any idea? Or should I use Terminal?

I want to replace the default movie player with VLC media player, because the current movie player is useless to me.

13 Answers 13


There's yet another GUI solution, which might come handy for you ;)

Try opening the properties (right click -> Properties) of the file type you want to be always played by VLC.

Choose the Open with tab and either choose from a list or add one (by choosing from an extended program list or simply typing vlc as the command)


... and click on Set as default

enter image description here

| improve this answer | |
  • 57
    Wow, what UI idiocy by Ubuntu. Right-click -> open with -> other application DOES NOT show "Set as default"... Right-click -> Properties -> Open With DOES show "Set as default". – Jeff Ward Mar 25 '14 at 15:49
  • 2
    and for applications that do not show on the "others" list... regular users don't want to edit files and it should not be necessary to add extra GUI apps to do this kind of basic stuff, in my case fritzing does not apear as application to be associated with .fzz files and there is no button to point fritzing on the disk, why do ubuntu guys think that editing a text files is more acceptable than gui navigate the folders and point the application? ... this way ubuntu WILL NEVER reach the desktop – neu-rah Jun 7 '14 at 15:15
  • 8
    Added bug report for this usability issue - bugs.launchpad.net/hundredpapercuts/+bug/1413283 – anatoly techtonik Jan 21 '15 at 16:09
  • 2
    But what should I do when I want to use app I didn't install through Ubuntu Software Center or apt-get? I have Blender from official website and it's not installed (I have it in /opt direcotry and I can access it from terminal). Can I show my Ubuntu which executable file to use? – Jacajack Mar 10 '15 at 15:08
  • @Jacajack if this answer is not yet answered in Askubuntu.com, ask it :) This particular thread issues a use case for setting default, now what you need is "registering" a program within the system. – Paulius Šukys Mar 12 '15 at 13:59

If you're really desperate, just manually edit the file ~/.config/mimeapps.list.



Just add this under the [Default Applications] section if you want it to be default, or under [Added Associations] if it shouldn't be default.

Some programs still use the now deprecated ~/.local/share/applications/mimeapps.list, however, best is to make that a symlink to ~/.config/mimeapps.list to have a single config for this:

$ cat ~/.local/share/applications/mimeapps.list >> ~/.config/mimeapps.list
$ rm ~/.local/share/applications/mimeapps.list
$ ln -s ~/.config/mimeapps.list  ~/.local/share/applications/mimeapps.list
| improve this answer | |
  • can you please give an example of the format? – dapias Dec 4 '15 at 21:33
  • 1
    @dapias when you open the file, you will see lots of examples there that you can duplicate and edit. I.e. x-scheme-handler/mailto=thunderbird.desktop. – amertkara Jan 28 '16 at 15:57
  • 6
    mimeapps.list can be put in many directories, full search path at: specifications.freedesktop.org/mime-apps-spec/… I prefer XDG_CONFIG_HOME which is just ~/.config/mimeapps.list and has higher precedence. – Ciro Santilli 郝海东冠状病六四事件法轮功 Jan 19 '17 at 9:08
  • 1
    I have no file in ~/.local/share/applications – alhelal May 21 '18 at 6:12
  1. Choice number one: Open a terminal where your file is and do the following command.

    mimeopen -d your_video.avi

    There is the output:

    Please choose a default application for files of type application/x-ms-dos-executable
    1) vlc
    2) ...
    3) Other...

    Use application #3
    Use command: vlc %f

    Press 1 if you see vlc, if not, chose the Other solution (3 in that case). Then type the name of your application followed by %f.

  2. Choice 2: Generic way

    mimeopen .avi

    And then do the step above.

| improve this answer | |
  • 1
    maybe you can try %U rather than %f: the reason is that %f will only open a single file, while a program capable of opening several files at the same time, or indeed several URLs at the same time will do so with %U. – DJCrashdummy Oct 8 '16 at 13:06
  • I used the mimeopen-d approach with 18.04 and used nautilus properties to then set my choice as default. – Elder Geek Jan 17 at 1:07
  • This doesn't work for text file formats – HackerBoss Mar 23 at 23:23

Use Ubuntu Tweak - it has a file association manager and you can choose which programs open which file types.

Instructions are on this site http://www.omgubuntu.co.uk/2011/12/new-version-of-ubuntu-tweak-released/

Best way to install is:

sudo add-apt-repository ppa:tualatrix/ppa
sudo apt-get update
sudo apt-get install ubuntu-tweak

EDIT In newer versions of Ubuntu, follow Paulius's answer, the option has been added to the Properties -> Open With screen.

| improve this answer | |
  • 2
    This should be the best answer, because at least in Ubuntu 12.10, clicking "Add" in the Open With tab, inside the Properties window, just adds the selected application to the "Recommended Applications" group ― it doesn't let you choose another program (for example, Sublime Text 2 or /usr/bin/subl, because it's a precompiled package and itś not registered). – AeroCross Nov 12 '12 at 14:14
  • @AeroCross, this could be well documented in askubuntu wiki, hm? :) – Paulius Šukys Nov 16 '12 at 0:08
  • 1
    @AeroCross It lets you also to choose a precompiled program like Sublime Text. You just need a desktop-file with "Exec=/usr/bin/subl %f". Than you can use the properties window and open with tab. – TIIUNDER Dec 19 '12 at 8:42

xdg-mime default <application> <mime-type>

works from the commandline, and is obey instantly by all GTK apps (and possibly Qt apps?). For example, to change the default PDF reader to Okular, use:

xdg-mime default okularApplication_pdf.desktop application/pdf

This is really useful for updating the default apps used by GTK when using a Qt based system without having to install any GTK-based apps.

Edit: on *buntu flavoured linuxes, the applications that can be used with this method are at /usr/share/applications/*.desktop. The known mimetypes can be found in /usr/share/applications/defaults.list.

| improve this answer | |
  • This worked for meta-types like inode/directory (which apparently is the mimetyp e of a directory) – dualed Aug 8 '19 at 23:01
  • 1
    This should be the accepted answer. – extremeaxe5 May 14 at 18:29

I was having a similar problem with PDFs; I had installed Adobe Reader, but I couldn't get it to open them as the default application - it didn't even show up on the lists!

I checked the mimeapps.list file listed above, and it was already listed as default there.

This is what worked for me finally:

  • I right clicked on a PDF and chose "Properties." I opened the "Open with" tab.
  • Still no Adobe Reader.
  • Clicking on the "Reset" button made Adobe appear as the default, and now it works.

I guess that "Reset" was necessary after the (rather inconventional) installation to register it as the default program.

| improve this answer | |

Here's how I did it without using the Ubuntu Tweak tool. My guide includes file type associations, so that your app will be listed in the "Recommended Applications" when right-clicking the file to see the properties. Guide as follows (I'm using 13.10 Saucy):

When you see a command, run it in terminal, of course :)

  1. cd /usr/share/applications/

  2. cp similar_program.desktop name_of_your_program.desktop

  3. gedit name_of_your_program.desktop

    • leave the [Desktop Entry] as the top line
    • modify the type (unless it's the same)
    • modify the name (can have spaces)
    • if you want to add support for the name in other languages just add a new line that says for instance:

      Name[es]=PlayonLinux Cargador de programas de Windows
    • modify the Exec (should just say yourprogram %f as long as it's a default install with the program in /usr/bin)

    • modify the MimeType (unless it's the same)
    • modify the Icon (again, if it's a default program installed to (/usr/bin) this should just say Icon=name_ of_your_program
    • NoDisplay=true
    • StartupNotify=true
  4. gedit ~/.local/share/applications/mimeapps.list

    In my instance I wanted to add PlayonLinux to select as a program to open .exe files, instead of always using WINE. But I wanted Wine to show up too.

    In this case, you can leave the top section [Default Applications] alone. Then find the line under [Added Associations], and change it from, in my instance




    This way they both options will show up when I try to load a Windows .exe file.

If you right-click the properties on the file, and for instance say I eventually do want to make PlayonLinux the default for Windows .exe files, all I need to do is tell it to be set as default. And it will change. You can check the mimeapps.list (~/.local/share/applications/mimeapps.list) to double-check and you'll now see it will have replaced WINE under [Default Applications].

| improve this answer | |
  • maybe you can try %U rather than %f: the reason is that %f will only open a single file, while a program capable of opening several files at the same time, or indeed several URLs at the same time will do so with %U. – DJCrashdummy Oct 8 '16 at 13:04

For Dolphin (KDE), right click the file to get a Properties window. Under Type is a button for File Type Options, where you can modify filename extensions. Add the application if it's not in the bottom list. To make it default, move the application you want to the top of the Application Preference Order list.

Screenshot from a more detailed guide:

enter image description here

| improve this answer | |

If the System Info > Default Program doesn't work, then you could try right clicking on whatever video/movie file you want to play, then click Open With, and then select VLC.

If you want further details, this may help you: http://www.johannes-eva.net/change-the-default-application-ubuntu-linux

| improve this answer | |

I tried a number of these solutions with null result.
Until I went to

  1. Show Applications
  2. Settings
  3. Default Applications

and set VLC to open video and music files...
Then it worked.
(although the mime icon is still not VLC, but it opens in VLC now...)

| improve this answer | |
  • I see recommendations to install older versions of Nautilus. Perhaps that might work. The current version in Gnome, changes the mime type in the .config directory (when you click Change Default Program,) but then ignores it. The setting in 2) Settings above does change the behavior, however. – kakunka Dec 3 '18 at 23:26

For those looking for setting an application association for file extensions, NOT a mimetype:

Apparently, Ubuntu / Linux keeps this indirectly: * file extension -> MIME types * MIME type -> application(s) to open * Applications -> list of compatible MIME types

For Ubuntu (18.x), these are described in:

file extension -> MIME types

This is in files in /usr/share/mime/packages/. E.g.:

sudo touch /usr/share/mime/packages/staruml.xml

sudo cat << EOF > /usr/share/mime/packages/staruml.xml
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
  <mime-type type="application/staruml-project">
    <comment>StarUML project</comment>
    <glob pattern="*.MDJ"/>
    <glob pattern="*.mdj"/>

MIME type -> application(s) to open

This is driven by ~/.local/share/applications/mimeapps.list and detailed the other answers.

[Default Applications]
echo 'application/staruml=staruml.desktop' >> ~/.local/share/applications/mimeapps.list
## Or, for global:
echo 'application/staruml=staruml.desktop' >> /usr/share/applications/mimeapps.list

Applications -> list of compatible MIME types

This is driven by the .desktop files in /usr/share/applications/. That file can contain a MimeType= entry with semicolon-separated list of MIME types. For instance, the EOG app has: MimeType=image/bmp;image/gif;image/jpeg;image/jpg;... etc.

sudo touch /usr/share/applications/staruml.desktop

sudo cat << EOF > /usr/share/applications/staruml.desktop
[Desktop Entry]
Exec=/sw/prog/StarUML/StarUML-3.1.0-x86_64.AppImage %U

This makes it a full circle. The changes take effect after running

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

and, for icons,

sudo gtk-update-icon-cache /usr/share/icons/gnome -f

Or, it may need you to logout/login.

Then, you should be able to see this:

$ mimetype .mdj
.mdj:  application/staruml-project

Reference: https://coderwall.com/p/qjda2q/create-new-mime-type-and-assign-an-icon-to-it-in-ubuntu

| improve this answer | |

Thanks to Alvin Liang, I propose to solve this problem by

  1. installing Nemo (a fork of a former Nautilus version) via apt-get install nemo,
  2. clicking on a file of interest, choose "Open with ..." and "Other application ...",
  3. choose one of the applications in the list and click "Set as default".

Then, you can use Nautilus again with the updated file associations. It is not the most convenient solution, however, it avoids fiddling around with config files in the back.

If possible, please, upvote the following Launchpad issue to get this fixed in Nautilus!

| improve this answer | |

System Settings -> Details -> Default Applications

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.