Globally associate file type with certain application
I don't need "Ubuntu-tweak" and i know about GUI method of associating certain files with certain applications using right click and "Open with". I am having problem setting filetype association globally in a file:
/usr/share/gnome/applications/defaults.list
E.g.:
image/x-psd=gimp.desktop
If i want to open all PSD's in a photoshop, i have created photoshop.desktop file and placed it under /usr/share/applications
. Now when i press Super (windows) key and type Photoshop i see that icon, but i can't:
- drag'n'drop that on my desktop. How can i do that?
- if i change
image/x-psd=gimp.desktop
toimage/x-psd=photoshop.desktop
it still opens in a gimp. Why?
Thanks in advance.
Solution 1:
Solved my issue myself.
File /etc/gnome/defaults.list
are overriden by ~/.local/share/applications/mimeapps.list
, so all file association goes in to mimeapps.list
file:
[Default Applications]
image/vnd.adobe.photoshop=wine-extension-8bs.desktop
In this example i've set to open .psd in a Photoshop through Wine. If i go in to /etc/gnome/defaults.list
and add:
image/vnd.adobe.photoshop=gimp.desktop
It won't open .psd in a gimp, because it got overriden by mimeapps.list. Spent few hours to figure that out lol.
Solution 2:
Necromancing.
This is what worked for me:
added my desired application to /usr/share/applications.
sudo gedit /usr/share/applications/bash.desktop
Copy-paste over from Terminal (gnome-terminal.desktop), and replace gnome-terminal with bash:
[Desktop Entry]
Name=Bash
Comment=Use the command line
Keywords=shell;prompt;command;commandline;cmd;bash;
TryExec=bash
Exec=bash
Icon=utilities-terminal
Type=Application
X-GNOME-DocPath=gnome-terminal/index.html
X-GNOME-Bugzilla-Bugzilla=GNOME
X-GNOME-Bugzilla-Product=bash
X-GNOME-Bugzilla-Component=BugBuddyBugs
X-GNOME-Bugzilla-Version=3.18.3
Categories=GNOME;GTK;System;TerminalEmulator;
StartupNotify=true
X-GNOME-SingleWindow=false
OnlyShowIn=GNOME;Unity;
Actions=New
X-Ubuntu-Gettext-Domain=bash
[Desktop Action New]
Name=New Shell
Exec=bash
OnlyShowIn=Unity
Now associate the application with shell-scripts.
To do so, edit mimeapps.list:
sudo gedit ~/.local/share/applications/mimeapps.list
Add the following lines at the end (after all entries in section [Default Applications]):
[Added Associations]
application/x-shellscript=bash.desktop
Now in "File Manager" (aka nautilus), browse to one of the files you want to open. Choose "Properties". In the "open with"-tab, choose reset.
And voilà, Shell scripts will now be opened by bash, if you double-click with the mouse.