Hi, I had to solve this problem too. I used these functions: (defun w32-shell-execute (operation document &optional parameters show-flag) (if (and operation (not (string= "open" operation))) (error "Don't know how to %s %s" operation document) (call-process "/mnt/c/Windows/System32/cmd.exe" nil nil t "/c" "start" "\"\"" (concat "" (replace-regexp-in-string "^/mnt/c/" "c:/" (replace-regexp-in-string "^\\(/mnt/c\\)?/home/Fabrice/" "c:/home/" document)) "")))) (defun wsl-open-url (url &rest args) (w32-shell-execute "open" url)) (setq browse-url-browser-function #'wsl-open-url) (setq browse-url-mailto-function #'wsl-open-url) Regards, Fabrice Le ven. 27 déc. 2019 à 18:10, Steve Miano a écrit : > On WSL, using emacs 25.1, in org-mode there is a bug/design issue. > > It the issue is: > When opening a link in org-mode using C-c C-o, org-open-at-point doesn't > work. It does find the browser, if you have set > > (setq browse-url-firefox-program "/mnt/c/PROGRA~1/MOZILL~1/firefox.exe") > > and does run the process, but it doesn't bring up a browser. You can > see the process in list-processes and if you run that command in the > console it works, but in org-mode the console never show and the > process remains. > > The function browse-url-default-browse finds and runs the correct > browser. However, it runs the browser using the wrong command > depending on the case. If you are on WSL, without the graphical > interface, you need to run the shell-command to use the windows > browser. This is how it is done when it detects cygwin using > system-type. However, System-type cannot be used to detect WSL because > it doesn't find that you are on windows. The uname command detects it. > > Obviously this isn't straight forward as in different situations you > want to do different things, graphical vs non-graphical. Perhaps > modify the function which sets system-type to return wsl then detect > graphical environment and use the non shell-command approach? > > I humbly bring this to your attention. Thanks in advance. > > > Emacs : GNU Emacs 25.1.1 (x86_64-pc-linux-gnu, GTK+ Version 3.22.11) > of 2017-09-15, modified by Debian > Package: Org mode version 9.1.14 (9.1.14-9-g131531-elpa @ > /home/XXXX/.emacs.d/elpa/org-20181112/) > > current state: > ============== > (setq > org-src-lang-modes '(("python" . python) ("plantuml" . fundamental) > ("ocaml" . tuareg) ("elisp" . emacs-lisp) ("ditaa" . artist) > ("asymptote" . asy) > ("dot" . fundamental) ("sqlite" . sql) ("calc" . > fundamental) ("C" . c) ("cpp" . c++) ("C++" . c++) ("screen" . > shell-script) > ("shell" . sh) ("bash" . sh)) > org-tab-first-hook '(org-babel-hide-result-toggle-maybe > org-babel-header-arg-expand) > org-babel-results-keyword "results" > org-speed-command-hook '(org-speed-command-activate > org-babel-speed-command-activate) > org-occur-hook '(org-first-headline-recenter) > org-metaup-hook '(org-babel-load-in-session-maybe) > org-log-done t > org-confirm-shell-link-function 'yes-or-no-p > org-link-search-must-match-exact-headline nil > org-default-notes-file "~/org/notes.org" > org-after-todo-state-change-hook '(org-clock-out-if-current) > org-from-is-user-regexp "\\" > org-src-mode-hook '(org-src-babel-configure-edit-buffer > org-src-mode-configure-edit-buffer) > org-agenda-before-write-hook '(org-agenda-add-entry-text) > org-babel-pre-tangle-hook '(save-buffer) > org-table-use-standard-references t > org-font-lock-set-keywor > > > -- Fabrice Popineau ----------------------------- CentraleSupelec Département Informatique 3, rue Joliot Curie 91192 Gif/Yvette Cedex Tel direct : +33 (0) 169851950 Standard : +33 (0) 169851212 ------------------------------