From: "Trent W. Buck" <trentbuck@gmail.com>
To: 65009@debbugs.gnu.org
Subject: bug#65009: 29.1; should emacsclient check BROADWAY_DISPLAY as well as WAYLAND_DISPLAY and DISPLAY?
Date: Wed, 02 Aug 2023 19:51:55 +1000 [thread overview]
Message-ID: <874jlhepqc.fsf@gmail.com> (raw)
I'm writing this from Emacs 28.2 still, but this is about pgtk 29.1.
I haven't actually tested pgtk myself yet (sorry!)
The good folks of #debian-emacs noticed that while emacsclient doesn't
link to any GUI libraries, it does check GUI environment variables.
https://sources.debian.org/src/emacs/1:29.1+1-2/lib-src/emacsclient.c/?hl=1703#L631-L636
631 #ifdef HAVE_PGTK
632 display = egetenv ("WAYLAND_DISPLAY");
633 alt_display = egetenv ("DISPLAY");
634 #else
635 display = egetenv ("DISPLAY");
636 #endif
This (maybe) causes weirdness when Debian builds several versions of
/bin/emacs, but a single shared version of /bin/emacsclient.
But THIS bug is about what happens if you're running emacs inside the
browser, using GTK's built-in HTML5 backend:
# Start the display (a.k.a. web server)
broadwayd :0 &
# Connect from a client (could be a different container)
firefox http://127.0.0.1:8080
# start some GUI apps
GDK_BACKEND=broadway BROADWAY_DISPLAY=:0 gtk3-demo &
GDK_BACKEND=broadway BROADWAY_DISPLAY=:0 gnome-terminal -- emacs -nw &
GDK_BACKEND=broadway BROADWAY_DISPLAY=:0 virt-manager &
GDK_BACKEND=broadway BROADWAY_DISPLAY=:0 emacs &
AIUI pGTK makes Emacs a fully native GTK app and this Just Works.
But "emacsclient --create-frame" won't work until/unless it checks $BROADWAY_DISPLAY, right?
And while emacs daemon can tell from just
"-display ${WAYLAND_DISPLAY:-$DISPLAY}"
when wayland is wanted (because WAYLAND_DISPLAY starts with "wayland-"),
that's *not* possible with broadway.
So some kind of additional logic is needed on the server side, too?
Or maybe -display :0 will Just Work as long as emacs --daemon also has GDK_BACKEND=broadway?
I don't fully understand what happens inside the GTK layer.
My main use case for this is to have a GUI when running Emacs in Debian GNU/ntoskrnl (a.k.a. WSL1).
That way I have full, completely normal GNU userland (unlike NTEmacs), but
Indic scripts render properly (unlike Debian GNU emacs -nw inside Microsoft Terminal).
(The normal ways to solve this are WSL2 or MSYS2, but I like being weird.)
If the general consensus is "too hard; WONTFIX", I am OK with that.
This is something I want a couple of times a year, not every single day.
next reply other threads:[~2023-08-02 9:51 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-08-02 9:51 Trent W. Buck [this message]
2023-08-02 13:06 ` bug#65009: 29.1; should emacsclient check BROADWAY_DISPLAY as well as WAYLAND_DISPLAY and DISPLAY? Po Lu via Bug reports for GNU Emacs, the Swiss army knife of text editors
2023-08-02 18:12 ` Trent W. Buck
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=874jlhepqc.fsf@gmail.com \
--to=trentbuck@gmail.com \
--cc=65009@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).