140

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.

Halim
  • 1,411

15 Answers15

158

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)


EDIT:

... and click on Set as default

enter image description here

Boris
  • 5,012
psukys
  • 3,670
39

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

format:

application/TYPE=LAUNCHER.desktop

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
MaxNoe
  • 165
28
  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.

Ugo Hed
  • 679
20

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.

Sman789
  • 1,703
10

To associate an aplication to a MIME Type:

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.

Pablo Bianchi
  • 17,371
naught101
  • 1,652
7

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.:

cat <<EOF | sudo tee /usr/share/mime/packages/staruml.xml
<?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>
</mime-info>
EOF

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-project=staruml.desktop' >> ~/.local/share/applications/mimeapps.list
## Or, for global:
echo 'application/staruml-project=staruml.desktop' | sudo tee -a /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.

cat <<EOF | sudo tee /usr/share/applications/staruml.desktop
[Desktop Entry]
Name=StarUML
Comment=StarUML
GenericName=StarUML
Exec=/sw/prog/StarUML/StarUML-3.1.0-x86_64.AppImage %U
Icon=/sw/prog/StarUML/staruml.png
Type=Application
StartupNotify=false
Categories=Development;Programming;Modeling;UML
MimeType=application/staruml-project;
EOF

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

zx485
  • 2,865
7

Discover and change default program via CLI

As naught101s' answer only presents the last bit of all the steps that I did, and supplementing/improving his post/answer with all the extra bits I have, I considered too much of a difference to his original answer. So here is yet another answer xD with the steps I did:

  1. Open a terminal:

    • A) Open a terminal (Ctrl+Alt+t) and navigate to the directory where you have a file you are interested in changing the default application for.

    or

    • B) With the directory open in Nautilus click on the "down arrow" of the folder name and select the option Open in Terminal. A terminal window will appear already in that directory as base.

      Nautilius:Open Folder in Terminal

  2. Discover MimeType of file: Find out which MimeType is associated to your filetype with the xdg-mime tool.

    $ xdg-mime query filetype testimg.png
    image/png
    
  3. Discover current associated default program: For reference (in case you want to revert to what was originally there): You can query which default application is currently associated to this mime-type.

    Note: You can get extended info where it looks for the using the local Environmental debug parameter "XDG_UTILS_DEBUG_LEVEL=2 xdg-mime query default image/png".

    $ xdg-mime query default image/png 
    org.gnome.eog.desktop
    
  4. Discover programs that support specific MimeType: Now using the find command we search for .desktop files (shortcuts to installed software) which have indicated that they support this MimeType.

    The -exec <command> '{}' ';' executes grep to search for the text "image/png" within each match of .desktop file found from find.

    $ find /usr/ ~/ /snap/ /var/ /etc/ -iname "*.desktop" -type f -exec grep -il image/png '{}' ';' 2> /dev/null
    /usr/share/applications/org.gnome.eog.desktop
    /usr/share/applications/display-im6.q16.desktop
    /usr/share/applications/firefox.desktop
    /snap/pinta-james-carroll/4/meta/gui/pinta.desktop
    /snap/pinta-james-carroll/4/usr/share/applications/pinta.desktop
    /snap/pinta-james-carroll/5/meta/gui/pinta.desktop
    /snap/pinta-james-carroll/5/usr/share/applications/pinta.desktop
    /snap/kde-frameworks-5-core18/32/usr/share/kf5/kmoretools/presets-kmoretools/shutter.desktop
    /var/lib/snapd/desktop/applications/pinta-james-carroll_pinta.desktop
    
  5. Set new default program: Indentify the .desktop shortcut associated to the software you want to set as default and set it.

    $ xdg-mime default pinta.desktop image/png
    
Pablo Bianchi
  • 17,371
5

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.

Redbeard
  • 51
  • 1
  • 3
5

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

    application/x-ms-dos-executable=wine.desktop;
    

    to

    application/x-ms-dos-executable=wine.desktop;playonlinux.desktop;
    

    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].

David Foerster
  • 36,890
  • 56
  • 97
  • 151
2

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

qwr
  • 2,969
1

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!

mfg
  • 1,407
1

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...)

zx485
  • 2,865
kakunka
  • 59
1

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

Icedrake
  • 3,725
0

For KDE Plasma users (e.g. KUbuntu), open settings -> Personalization -> Applications -> File Associations. Then enter the relevant file type in the search bar and select the type under Known Types. Then add/move your desired default application to the top of the preference order.

screenshot

DBear
  • 271
-1

System Settings -> Details -> Default Applications

daniel
  • 1