Note #2025-03-24-002
Read Jeremy's post on quickly switching the default browser.
I had a shell script to do this as well. Doing it from Emacs makes more sense because I can have a completion UI.
So, here's my modified version for Linux:
(defun sj/default-browser (&optional name)
"Set the default browser based on the given NAME."
(interactive
(list
(completing-read
"Browser: "
(split-string
(shell-command-to-string
"find /usr/share/applications ~/.local/share/applications -name \"*.desktop\" -exec grep -l \"Categories=.*WebBrowser\" {} \\;")
"\n" t))))
(let ((browser-desktop (file-name-nondirectory name)))
(shell-command (format "xdg-mime default %s text/html" browser-desktop))
(shell-command (format "xdg-mime default %s application/xhtml+xml" browser-desktop))
(shell-command (format "xdg-mime default %s application/x-extension-html" browser-desktop))
(shell-command (format "xdg-settings set default-web-browser %s" browser-desktop))))
As a plus, it automatically lists the installed browsers based on .desktop
files on your system.
Interactions
Bookmark: srijan.ch/notes/2025-03-...