Collectives™ on Stack Overflow
Find centralized, trusted content and collaborate around the technologies you use most.
Learn more about Collectives
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Learn more about Teams
I have the following scenario:
Ubuntu 16.04
(Xenial Xerus) machine with Firefox and Google Chrome installed, Chrome being my default browser.
I check these actions in the shell:
cat /usr/share/applications/defaults.list
cat /etc/mailcap
cat /.config/mimeapps.list
cat /.local/share/applications/mimeinfo.cache
x-www-browser-> chrome is launch
xdg-mime query default text/html
response:
google-chrome.desktop
And it does not appear Firefox by any side, always Chrome. This is fine. Also check:
Click on a desktop file file.html → Chrome is launched.
And now comes the strange behaviour. Say I run:
xdg-open "http://www.example.com"
For some strange reason, it always opens Firefox. What should I do?
–
To set a default browser, make sure that a .desktop
file exists for your preferred browser. I'll be setting Mozilla Iceweasel for this example:
ls /usr/share/applications/iceweasel.desktop
Output:
iceweasel.desktop
Assured you have the file, run:
xdg-settings set default-web-browser iceweasel.desktop
# Test that it works
xdg-open "http://example.com"
If you don't have a .desktop file:
I use the program surf
, which doesn't have a .desktop file. To set this as your web browser, first create the file ~/.local/share/applications/surf.desktop with this following content:
[Desktop Entry]
Type=Application
Name=surf
Comment=Surf minimal web browser
Terminal=false
Exec=surf
Categories=Network;WebBrowser
While not all of this content is required, it helps categorize the file for any future use.
Set the default browser like normal:
xdg-settings set default-web-browser surf.desktop
And now you're good to go!
–
–
–
text/html is for HTML files, i.e., if you open an HTML file then it would open in Google Chrome. For opening URLs, you need to have the x-scheme-handler/https
and x-scheme-handler/http
entries.
You can set that either with xdg-mime. For example, to set Google Chrome as the default browser for xdg-open:
xdg-mime default google-chrome.desktop x-scheme-handler/https
xdg-mime default google-chrome.desktop x-scheme-handler/http
Or you can add the following lines in file ~/.config/mimeapps.list:
x-scheme-handler/http=google-chrome.desktop
x-scheme-handler/https=google-chrome.desktop
The above commands basically insert these lines into that file.
Note: you should obviously have the google-chrome.desktop file under ~/.local/share/applications or the system-wide alternative location - /usr/share/applications.
For changing the default browser overall, you also have to use xdg-settings as shown by Nolan Akash.
xdg-settings changes the value of $BROWSER, so another way to change it is to explicitly assign the program (not the .desktop file) to the $BROWSER environment variable and export it.
export BROWSER=google-chrome
You usually would want to keep this like in ~/.bashrc file (or the equivalent for the shell you use) or in the ~/.profile file and log out and log in to have the environment updated and available for other programs to see.
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.