63

Tried to set the default browser using the GUI tools but this didn't work overall. Is there a way to configure the system wide default browser from command line?

sdu
  • 1,590

10 Answers10

71

Execute the following command in terminal,to change the default browser.

sudo update-alternatives --config x-www-browser

Sample output:

karthick@Ubuntu-desktop:~$ sudo update-alternatives --config x-www-browser 
There are 3 choices for the alternative x-www-browser (providing /usr/bin/x-www-browser).

  Selection    Path                    Priority   Status
------------------------------------------------------------
  0            /usr/bin/google-chrome   200       auto mode
* 1            /usr/bin/firefox         40        manual mode
  2            /usr/bin/google-chrome   200       manual mode
  3            /usr/bin/opera           90        manual mode
  • Press enter to keep the default[*].

  • Right now I have firefox as my default web browser.

  • If i want google-chrome as default browser then I will type 3 and hit enter.

Note:

  • If you want to configure a commandline browser,then you have to configure

    sudo update-alternatives --config www-browser

  • Alternate way is to add the following line export BROWSER=/usr/bin/firefox to your ~/.bashrc

  • Add the above line in the last,

    enter code here

Alternative GUI Method:

  • You can also set the default browser in Gnome applications,type the following in terminal and press Enter gnome-default-applications-properties
  • It will Open a Window.Now you can choose your preferred browser to set it default. alt text
Jorge Castro
  • 71,754
karthick87
  • 81,947
  • 3
    My gnome-www-browser is a link to epiphany, my x-www-browser is a link to chromium, but the right click in the terminal (gnome-terminal and terminator) opens the url with firefox :( – Arpad Horvath Apr 10 '12 at 08:51
  • Is there command line for to set document viewer as default for PDF. – Rahul Raj Mar 02 '16 at 17:26
  • 1
    This doesn't work for Ubuntu 18.04. The answer from stilllife works: xdg-settings set default-web-browser chromium-browser.desktop – Graham Jul 29 '18 at 18:00
31

The already suggested methods might not work for some app (e.g. HipChat).

I've had to do:

xdg-settings set default-web-browser chromium-browser.desktop
stilllife
  • 477
  • XFCE seems to set this with it's GUI Settings -> Preferred applications – Xen2050 Dec 22 '17 at 21:40
  • 1
    This helped me set the default browser for jupyter notebook. – jchook Jan 29 '18 at 01:02
  • Worked for me in Debian 10. I've downloaded Firefox 85, untargziped into /lib/firefox, created .desktop file into /usr/share/applications/ but it is not appearing into Default Browsers choices in GNOME settings. This above command works well in this case. – Enrique René Jan 27 '21 at 01:45
4

Googlers, to do this fully scripted (no interaction whatsoever) in a setup script:

sudo update-alternatives --install /usr/bin/x-www-browser x-www-browser /usr/bin/google-chrome 500
sudo update-alternatives --set x-www-browser /usr/bin/google-chrome

…and similary for your favorite editor:

sudo update-alternatives --install /usr/bin/editor editor /usr/bin/pluma 500
sudo update-alternatives --set editor /usr/bin/pluma
Frank N
  • 1,340
  • what does 500 stand for? – cipricus Jan 10 '22 at 08:09
  • 1
    it's just a “sufficently high“ (but mostly guessed) priority value to “win” over all existing. – Frank N Jan 12 '22 at 17:58
  • Didn't work for me when I tried /home/myusernam/.helper_scripts/browser_wrapper where the wrapper just does: vivaldi-stable --new-window --force-device-scale-factor=2 $@ 2>/dev/null, I get a message: [49696:49722:0226/123433.848972:ERROR:bus.cc(398)] Failed to connect to the bus: Could not parse server address: Unknown address type (examples of valid types are "tcp" and on UNIX "unix"). So nice to have these GUI that just ignore BROWSER – Britton Kerin Feb 26 '23 at 21:33
4

It depends a bit on what "default browser" exactly means, i.e. for what purpose you want to change the browser. Some programs ignore any system-wide settings and use their own settings.

That said, you can set the default browser for all programs starting the browser with the generic sensible-browser command by exporting the BROWSER variable, e.g. add a line to the file ~/.bashrc:

export BROWSER=/usr/bin/firefox

The other generic way of calling a browser is x-www-browser, this one is handled by the Debian "alternatives" system:

sudo update-alternatives --config x-www-browser

If you want to configure a commandline-only browser like lynx, you have to configure www-browser instead.

2

The top two answers here both look promising, yet only one of them worked for me. Have you ever wondered why? For the sake of completeness, this is an official wiki page from Debian:

Foreign applications

Default for foreign programs (system-wide)

Programs which are not designed for the user's desktop environment do not obey the browser settings of the desktop environment (GNOME or KDE). For example, Thunderbird ignores desktop environment-specific browser settings. The default browser for generic applications can be changed for the whole system by reconfiguring the x-www-browser alternative.

# update-alternatives --config x-www-browser

Default for foreign programs (user-specific)

Some applications use xdg-open (part of xdg-utils). xdg-settings can be used to both get and change the default browser. Local settings can also be found in the users' home in ~/.config/mimeapps.list.

$ xdg-settings get default-web-browser
chromium.desktop

$ xdg-settings set default-web-browser firefox-esr.desktop

muru
  • 197,895
  • 55
  • 485
  • 740
RayLuo
  • 131
  • 3
1

sudo update-alternatives --config x-www-browser

only shows installed application trough apt-get, for manual installation you can use

sudo update-alternatives --install /usr/bin/x-www-browser x-www-browser /opt/yourapp/yourapp 200
sudo update-alternatives --set x-www-browser /opt/yourapp/yourapp
azzamsa
  • 199
0

For me, today, running Gnome 3, ~/.config/mimeapps.list is what controls gnome-open <url> and Java's Desktop.getDesktop().browse(new URI(url)). This is what changes there when I run gnome-control-center (the "Details" applet in the settings application from the top right menu) and change Default Applications, Web from Google Chrome to Firefox ESR:

11c11
< x-scheme-handler/http=google-chrome.desktop
---
> x-scheme-handler/http=firefox-esr.desktop`

As hoped, I could revert that from the command line with:

perl -i -wpe 's@x-scheme-handler/http(s?)=firefox-esr.desktop@x-scheme-handler/http$1=google-chrome.desktop@' ~/.config/mimeapps.list

... and put it back with:

perl -i -wpe 's@x-scheme-handler/http(s?)=google-chrome.desktop@x-scheme-handler/http$1=firefox-esr.desktop@' ~/.config/mimeapps.list

  • Looks like this is the file that xdg-settings set default-web-browser google-chrome.desktop updates. – eichin Apr 16 '20 at 06:38
  • For me that seems to be replacing .local/share/applications/mimeapps.list... with the same content it already has. Something's broken but perhaps it's just for me. – Martin Dorey Apr 17 '20 at 08:34
0

Try the following commands:

sudo update-alternatives --config x-www-browser
sudo update-alternatives --config www-browser
ddeimeke
  • 3,089
0

Additional to those answer google-chrome has usually a symbolic link to the channel-specific version:

/usr/bin/google-chrome -> /etc/alternatives/google-chrome -> /usr/bin/google-chrome-beta
Wernight
  • 1,383
  • 10
  • 10
-1

For me, sensible-browser seems to just call /usr/bin/gnome-www-browser, which symlinks to /etc/alternatives/gnome-www-browser, which symlinks to the browser. To change it, I needed to do this:

sudo rm /etc/alternatives/gnome-www-browser
sudo ln -s ~/bin/firefox /etc/alternatives/gnome-www-browser

You should put the full path to the browser that you want to use in place of ~/bin/firefox.

Now, when I run sensible-browser https://example.com, Firefox opens as expected.

Luc
  • 993