Subject: bug#17352: .emacs.desktop has become unportable between GUI and TTY.

From: Alan Mackenzie <[email-masked]>
Date: Sun, 27 Apr 2014 13:53:37 +0000

Hi, Juanma.

On Sun, Apr 27, 2014 at 02:29:44PM +0200, Juanma Barranquero wrote:
> On Sun, Apr 27, 2014 at 11:02 AM, Alan Mackenzie <[email-masked]> wrote:

> I don't have access to a GNU/Linux system, so let's try to analyze the
> problem step by step from your side.

> > With a throwaway userid, in a Linux tty (virtual terminal), start Emacs
> > and create a ~/.emacs containing the single line

> >     (desktop-save-mode 1)

> > Evaluate this form with C-x C-e.

> > With .emacs in the current window, visit a new file in a new frame with
> > C-x 5 C-f asdf <RET>, put some random text into the new buffer and save
> > it with C-x C-s.  Exit Emacs with C-x C-c.

> After this, please tell me the value of desktop-saved-frameset in the
> .emacs.desktop file.

(setq desktop-saved-frameset [frameset 1 (21341 2076 453651 734000) (desktop . "206") "[email-masked]" nil nil ((((tty-type . "linux") (tty . "/dev/tty") (display-type . color) (background-mode . dark) (cursor-color . "white") (acm-no . 1) (frameset--id . "1C46-838B-D41A-31D0") (frameset--mini t) (foreground-color . "unspecified-fg") (background-color . "unspecified-bg") (font . "tty") (height . 67) (width . 240) (modeline . t) (minibuffer . t) (unsplittable) (menu-bar-lines . 1)) ((min-height . 4) (min-width . 10) (min-height-ignore . 2) (min-width-ignore . 2) (min-height-safe . 1) (min-width-safe . 2) (min-pixel-height . 4) (min-pixel-width . 10) (min-pixel-height-ignore . 2) (min-pixel-width-ignore . 2) (min-pixel-height-safe . 1) (min-pixel-width-safe . 2)) leaf (pixel-width . 240) (pixel-height . 65) (total-width . 240) (total-height . 65) (normal-height . 1.0) (normal-width . 1.0) (buffer "asdf2" (selected . t) (hscroll . 0) (fringes 0 0 nil) (margins nil) (scroll-bars 0 0 t nil) (vscroll . 0) (dedicated) (point . 27) (start . 1))) (((tty-type . "linux") (tty . "/dev/tty") (display-type . color) (background-mode . dark) (foreground-color . "unspecified-fg") (cursor-color . "white") (acm-no . 0) (background-color . "unspecified-bg") (font . "tty") (height . 67) (width . 240) (modeline . t) (unsplittable) (menu-bar-lines . 1) (frameset--id . "140A-8053-E59A-D89D") (frameset--mini t) (minibuffer . t)) ((min-height . 4) (min-width . 10) (min-height-ignore . 2) (min-width-ignore . 2) (min-height-safe . 1) (min-width-safe . 2) (min-pixel-height . 4) (min-pixel-width . 10) (min-pixel-height-ignore . 2) (min-pixel-width-ignore . 2) (min-pixel-height-safe . 1) (min-pixel-width-safe . 2)) leaf (pixel-width . 240) (pixel-height . 65) (total-width . 240) (total-height . 65) (normal-height . 1.0) (normal-width . 1.0) (buffer ".emacs" (selected) (hscroll . 0) (fringes 0 0 nil) (margins nil) (scroll-bars 0 0 t nil) (vscroll . 0) (dedicated) (point . 1) (start . 1))))])

> > With the same userid, in X Windows, open a terminal and start Emacs (with
> > no command line arguments).  This produces the aforementioned error
> > messages:

> >     Error (frameset): Font `tty' is not defined [2 times]
> >     Warning (frameset): Attempt to delete the sole visible or iconified frame

> > .  Only one frame is currently open.

> > Now close this Emacs session with C-x C-c

> Also after this step.

(setq desktop-saved-frameset [frameset 1 (21341 2499 194045 27000) (desktop . "206") "[email-masked]" nil nil ((((font-backend xft x) (font . "-unknown-DejaVu Sans Mono-normal-normal-normal-*-15-*-*-*-m-0-iso10646-1") (font-parameter . "Monospace 11") (border-width . 0) (internal-border-width . 0) (right-divider-width . 0) (bottom-divider-width . 0) (vertical-scroll-bars . right) (foreground-color . "black") (background-color . "white") (mouse-color . "black") (border-color . "black") (screen-gamma) (line-spacing) (left-fringe . 9) (right-fringe . 9) (scroll-bar-foreground) (scroll-bar-background . "grey75") (menu-bar-lines . 1) (tool-bar-lines . 1) (title) (wait-for-wm . t) (fullscreen) (tool-bar-position . top) (icon-type . t) (auto-raise) (auto-lower) (cursor-type . box) (scroll-bar-width . 16) (alpha) (display-type . color) (background-mode . light) (cursor-color . "black") (visibility) (acm-no . 2) (frameset--id . "6292-372A-DD78-D288") (frameset--mini t) (height . 67) (width . 240) (modeline . t) (minibuffer . t) (unsplittable) (left . 0) (top . 0) (icon-name) (display . ":0.0") (explicit-name)) ((min-height . 4) (min-width . 10) (min-height-ignore . 2) (min-width-ignore . 6) (min-height-safe . 1) (min-width-safe . 2) (min-pixel-height . 72) (min-pixel-width . 90) (min-pixel-height-ignore . 36) (min-pixel-width-ignore . 54) (min-pixel-height-safe . 18) (min-pixel-width-safe . 18)) leaf (pixel-width . 2194) (pixel-height . 1188) (total-width . 243) (total-height . 66) (normal-height . 1.0) (normal-width . 1.0) (buffer "*scratch*" (selected) (hscroll . 0) (fringes 9 9 nil) (margins nil) (scroll-bars 16 2 t nil) (vscroll . 0) (dedicated) (point . 1) (start . 1))) (((font-backend xft x) (font . "-unknown-DejaVu Sans Mono-normal-normal-normal-*-15-*-*-*-m-0-iso10646-1") (font-parameter . "Monospace 11") (border-width . 0) (internal-border-width . 0) (right-divider-width . 0) (bottom-divider-width . 0) (vertical-scroll-bars . right) (foreground-color . "black") (background-color . "white") (mouse-color . "black") (border-color . "black") (screen-gamma) (line-spacing) (left-fringe . 9) (right-fringe . 9) (scroll-bar-foreground) (scroll-bar-background . "grey75") (menu-bar-lines . 1) (tool-bar-lines . 1) (title) (wait-for-wm . t) (fullscreen) (tool-bar-position . top) (icon-type . t) (auto-raise) (auto-lower) (cursor-type . box) (scroll-bar-width . 16) (alpha) (display-type . color) (background-mode . light) (cursor-color . "black") (visibility) (acm-no . 1) (frameset--id . "A262-9F94-6E27-1BB1") (frameset--mini t) (height . 67) (width . 240) (modeline . t) (minibuffer . t) (unsplittable) (left . 0) (top . 0) (icon-name) (display . ":0.0") (explicit-name)) ((min-height . 4) (min-width . 10) (min-height-ignore . 2) (min-width-ignore . 6) (min-height-safe . 1) (min-width-safe . 2) (min-pixel-height . 72) (min-pixel-width . 90) (min-pixel-height-ignore . 36) (min-pixel-width-ignore . 54) (min-pixel-height-safe . 18) (min-pixel-width-safe . 18)) leaf (pixel-width . 2194) (pixel-height . 1188) (total-width . 243) (total-height . 66) (normal-height . 1.0) (normal-width . 1.0) (buffer "*scratch*" (selected) (hscroll . 0) (fringes 9 9 nil) (margins nil) (scroll-bars 16 2 t nil) (vscroll . 0) (dedicated) (point . 1) (start . 1))) (((font-backend xft x) (font . "-unknown-DejaVu Sans Mono-normal-normal-normal-*-15-*-*-*-m-0-iso10646-1") (font-parameter . "Monospace 11") (border-width . 0) (internal-border-width . 0) (right-divider-width . 0) (bottom-divider-width . 0) (vertical-scroll-bars . right) (foreground-color . "black") (background-color . "white") (mouse-color . "black") (border-color . "black") (screen-gamma) (line-spacing) (left-fringe . 9) (right-fringe . 9) (scroll-bar-foreground) (scroll-bar-background . "grey75") (menu-bar-lines . 1) (tool-bar-lines . 1) (title) (wait-for-wm . t) (fullscreen) (tool-bar-position . top) (icon-type . t) (auto-raise) (auto-lower) (cursor-type . box) (scroll-bar-width . 16) (alpha) (horizontal-scroll-bars . t) (display-type . color) (background-mode . light) (cursor-color . "black") (sticky) (environment) (acm-no . 0) (frameset--id . "1619-8E5C-153E-03AD") (frameset--mini t . t) (height . 35) (width . 80) (modeline . t) (minibuffer . t) (unsplittable) (left . 0) (top . 31) (icon-name) (visibility . t) (display . ":0.0") (explicit-name)) ((min-height . 8) (min-width . 10) (min-height-ignore . 4) (min-width-ignore . 6) (min-height-safe . 2) (min-width-safe . 2) (min-pixel-height . 144) (min-pixel-width . 90) (min-pixel-height-ignore . 72) (min-pixel-width-ignore . 54) (min-pixel-height-safe . 36) (min-pixel-width-safe . 18)) vc (pixel-width . 754) (pixel-height . 612) (total-width . 83) (total-height . 34) (normal-height . 1.0) (normal-width . 1.0) (combination-limit) (leaf (pixel-width . 754) (pixel-height . 306) (total-width . 83) (total-height . 17) (normal-height . 0.5) (normal-width . 1.0) (buffer ".emacs" (selected . t) (hscroll . 0) (fringes 9 9 nil) (margins nil) (scroll-bars 16 2 t nil) (vscroll . 0) (dedicated) (point . 1) (start . 1))) (leaf (last . t) (pixel-width . 754) (pixel-height . 306) (total-width . 83) (total-height . 17) (normal-height . 0.5) (normal-width . 1.0) (buffer "*Warnings*" (selected) (hscroll . 0) (fringes 9 9 nil) (margins nil) (scroll-bars 16 2 t nil) (vscroll . 0) (dedicated) (point . 55) (start . 1)))))])

> > and attempt to start another
> > session on the tty.  In the *scratch* buffer (apparently) appear the
> > following error messages:

> >     (emacs:3488): GConf-WARNING **: Client failed to connect to the D-BUS daemon:
> >     Unable to autolaunch a dbus-daemon without a $DISPLAY for X11

> > , the pair being repeated 9 times (for a total of twenty messages).  Each
> > one started directly below where the previous one ended (as though a Unix
> > file was being displayed on a device expecting MS-DOS line terminators).
> > This Emacs is unusable, some control characters not being interpreted.
> > For example, on typing M-x, "^[x" gets displayed in the minibuffer
> > region, and the minibuffer is not active.  C-x C-c works, however.

> I don't understand why should this happen. Could you also please try
> your recipe, but in the fist step, put this in your .emacs

>    (setq desktop-restore-frames nil)
>    (desktop-save-mode 1)

> instead, to make sure that all problems do indeed depend on frameset
> restoration.

With that setting, the problems do indeed disappear.  So it would appear
the frameset(s?) is/are the problem.

> Thanks,

>     J

-- 
Alan Mackenzie (Nuremberg, Germany).