Package: emacs;
Reported by: Alex Hutcheson <alexhutcheson <at> google.com>
Date: Thu, 26 Jan 2017 18:11:01 UTC
Severity: normal
Merged with 30382
Found in versions 25.1.91, 27.0.50
Done: Stefan Monnier <monnier <at> iro.umontreal.ca>
Bug is archived. No further changes may be made.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Alex Hutcheson <alexhutcheson <at> google.com> To: bug-gnu-emacs <at> gnu.org Subject: 25.1.91; emacsclient -c creates frames on the wrong display Date: Thu, 26 Jan 2017 13:09:46 -0500
When an emacsclient running in a terminal is connected to an Emacs instance running in a graphical environment, running `emacsclient -c' from a comint buffer (such as M-x shell) creates a frame in the graphical environment, where it may be inaccessible to the user who ran the command. To reproduce: 1. Run `emacs --daemon' on a system with a graphical display. 2. Login to the system using a terminal with no graphical display. You could do this by switching to another virtual terminal (Ctrl-Alt-F1 works on Ubuntu), or SSH in from another machine. 3. Run `emacsclient -c' or `emacsclient -t' in the terminal to connect to the running Emacs instance. 4. Inside Emacs, run M-x shell. 5. In the M-x shell buffer, run `emacsclient -c'. Ideal behavior: emacsclient creates a frame on the current terminal. Actual behavior: emacsclient creates a graphical frame in the environment in which it was launched, which is inaccessible from the terminal. Possible questions: Q : Why would you want to run emacsclient from within M-x shell? Why not just do whatever you want to do in the frame you already have open? A : Normally the user isn't launching emacsclient directly. Instead, a script might be launching emacsclient as part of a larger workflow. Q : Why not just launch emacsclient without the '-c' option? A : Without the -c flag, emacsclient works well to edit a file or series of files, but it doesn't support more complicated tasks. For example, a script might want to launch an ediff session, and wait until the ediff session exits. The easiest way to do this is to use `emacsclient -c' and wait for the connection to be closed. In GNU Emacs 25.1.91.1 (x86_64-pc-linux-gnu, X toolkit, Xaw3d scroll bars), modified by Debian Windowing system distributor 'The X.Org Foundation', version 11.0.11501000 System Description: Ubuntu 14.04 LTS Configured using: 'configure --build x86_64-linux-gnu --build x86_64-linux-gnu --prefix=/usr --sharedstatedir=/var/lib --libexecdir=/usr/lib --localstatedir=/var/lib --infodir=/usr/share/info --mandir=/usr/share/man --with-pop=yes --enable-locallisppath=/etc/google-emacs:/etc/emacs:/usr/local/share/emacs/25.1.91+gg1+2/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/25.1.91+gg1+2/site-lisp:/usr/share/emacs/site-lisp --with-crt-dir=/usr/lib/x86_64-linux-gnu --disable-build-details --disable-silent-rules --with-modules GOOGLE_VERSION=25.1.91+gg1+2 --with-x=yes --with-x-toolkit=lucid --with-toolkit-scroll-bars --without-gconf --without-gsettings build_alias=x86_64-linux-gnu 'CFLAGS=-g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall' 'LDFLAGS=-Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-fuse-ld=gold,--export-dynamic-symbol=__google_auxv' 'CPPFLAGS=-D_FORTIFY_SOURCE=2 -DGOOGLE_EMACS_DEFINE_AUXV'' Configured features: XAW3D XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS NOTIFY LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS LUCID X11 MODULES Important settings: value of $LANG: en_US.UTF-8 value of $XMODIFIERS: @im=ibus locale-coding-system: utf-8-unix Major mode: Message Minor modes in effect: mml-mode: t tooltip-mode: t global-eldoc-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t auto-fill-function: message-do-auto-fill transient-mark-mode: t abbrev-mode: t Recent messages: Sending... Mark set Fix continuation lines? (y or n) y [59 times] Mark set Sending via mail... if: Mail headers not found Mark set Sending... Mark set [2 times] Sending via mail... if: Mail headers not found Load-path shadows: None found. Features: (pp shadow sort mail-extr emacsbug message format-spec rfc822 mml mml-sec password-cache epg epg-config gnus-util mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader google-sendgmr sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils novice cl-extra help-fns help-mode easymenu misearch multi-isearch dired-aux cl-loaddefs pcase cl-lib dired time-date mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese charscript case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer cl-preloaded nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote dbusbind inotify dynamic-setting font-render-setting x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 111409 15495) (symbols 48 20120 0) (miscs 40 211 363) (strings 32 15788 3029) (string-bytes 1 498060) (vectors 16 12877) (vector-slots 8 445607 5773) (floats 8 175 297) (intervals 56 4381 159) (buffers 976 29) (heap 1024 34656 1309))
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.