Unable to launch browser from shell - it opens VSCode instead

I have a problem when some shell command is trying to launch my browser. Example below with browse command, but same with jupyter notebook. It looks like the target is opened in VSCode instead.

I'm running Ubuntu 20.04, with zsh, in a pyenv virtual environment.

Thanks!

~ browse askubuntu.com
    command= "code" args= ("code", "http://askubuntu.com")                                                                                                                                
~ Copying QUrl("http://askubuntu.com/")  to QUrl("file:///home/username/.cache/kioexec/krun/8292_0/unnamed")
    Telling kioexecd to watch path "/home/username/.cache/kioexec/krun/8292_0/unnamed" dest "http://askubuntu.com/"
    All files downloaded, will call slotRunApp shortly
    EXEC "/snap/bin/code /home/username/.cache/kioexec/krun/8292_0/unnamed"
    EXEC done

... then VSCode opens the target as a html file.

  • EDIT: Same error when I run xdg-open 'http://askubuntu.com'

  • EDIT: xdg-settings get default-web-browser yields code-2.desktop

  • EDIT: if I do xdg-settings set default-web-browser firefox.desktop, no error raised but it doesn't actually change the value (stays as code-2.desktop)

  • EDIT: $BROWSER askubuntu.com works perfectly fine

  • SOLVED: Thanks to @Koen I went to System settings/Applications/Default Applications (I'm on KDE) --> Web Browser --> Open http and https URLs "in the following application: Firefox" instead of "in an application based on the contents of the URL"


Solution 1:

You forgot the http:// which defines that what you are browsing is a website instead of a file. when you type "browse" alone you get

xdg-open - opens a file or URL in the user's preferred application

Try browse http:/google.com

This should fix the issue.