Discussion:
xdg-open in Emacs in Termux (Android)
Michael Brand
2018-05-13 10:48:39 UTC
Permalink
Hi all

With Emacs in Termux M-: (browse-url-xdg-open "http://gnu.org") opens
the URL in an Android browser. But M-: (browse-url-default-browser
"http://gnu.org") errors with "No usable browser found". This is
because even the most recent browse-url-can-use-xdg-open

#+begin_src emacs-lisp :eval no
(defun browse-url-can-use-xdg-open ()
"[...]"
(and (or (getenv "DISPLAY") (getenv "WAYLAND_DISPLAY"))
(executable-find "xdg-open")))
#+end_src

returns nil because none of the environment variables is set.

Should browse-url-can-use-xdg-open be changed to detect the situation of Termux?

Michael
Jostein Kjønigsen
2018-05-15 08:20:51 UTC
Permalink
Post by Michael Brand
Hi all
With Emacs in Termux M-: (browse-url-xdg-open "http://gnu.org") opens> the URL in an Android browser. But M-: (browse-url-default-browser
"http://gnu.org") errors with "No usable browser found". This is
because even the most recent browse-url-can-use-xdg-open
#+begin_src emacs-lisp :eval no
(defun browse-url-can-use-xdg-open ()
"[...]"
(and (or (getenv "DISPLAY") (getenv "WAYLAND_DISPLAY"))
(executable-find "xdg-open")))
#+end_src
returns nil because none of the environment variables is set.
Should browse-url-can-use-xdg-open be changed to detect the situation
of Termux?>
Michael
Having a termux-specific solution doesn't really sound ideal. What about
Lill Debbie (Debian bootstrapper)? Linux Deploy? Termius on iOS?
Are there another ways to detect a xdg-compliant runtime environment
apart from these environment variables, which are also applicable to
environments like Termux? If so we should apply something as general
as possible.
--
Regards
Jostein KjÞnigsen

***@kjonigsen.net 🍵 ***@gmail.com
https://jostein.kjonigsen.net
Paul Eggert
2018-05-15 16:04:17 UTC
Permalink
Post by Jostein Kjønigsen
Are there another ways to detect a xdg-compliant runtime environment
apart from these environment variables, which are also applicable to
environments like Termux?
If there is such a way, it isn't supported by xdg-utils. See, for example:

https://cgit.freedesktop.org/xdg/xdg-utils/tree/scripts/xdg-utils-common.in

which uses the same method Emacs does in browse-url-can-use-xdg-open.

Perhaps Emacs could examine the value of the XDG_SESSION_TYPE
environment variable, or something like that. But this should be
coordinated with Termux and/or xdg-utils.

Loading...