Package: emacs;
Reported by: Bob Hepple <bob.hepple <at> gmail.com>
Date: Wed, 2 Oct 2024 00:42:02 UTC
Severity: wishlist
Found in version 29.4
To reply to this bug, email your comments to 73593 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
View this report as an mbox folder, status mbox, maintainer mbox
bug-gnu-emacs <at> gnu.org
:bug#73593
; Package emacs
.
(Wed, 02 Oct 2024 00:42:02 GMT) Full text and rfc822 format available.Bob Hepple <bob.hepple <at> gmail.com>
:bug-gnu-emacs <at> gnu.org
.
(Wed, 02 Oct 2024 00:42:02 GMT) Full text and rfc822 format available.Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
From: Bob Hepple <bob.hepple <at> gmail.com> To: bug-gnu-emacs <at> gnu.org Subject: 29.4; desktop-save-mode does not store window configurations Date: Wed, 2 Oct 2024 10:41:41 +1000
--text follows this line-- From emacs -Q: M-x desktop-save-mode C-x r w 0 C-x C-c restart emacs -Q C-u M-x desktop-read C-x r j 0 Error: "Register doesn't contain a buffer position or configuration" The .emacs.desktop file contains: (setq register-alist (list (list 48 "Unprintable entity" (let ((mk (make-marker))) (add-hook 'desktop-delay-hook (lambda nil (set-marker mk 146 (get-buffer "*scratch*")))) mk)))) ... which is useless https://debbugs.gnu.org/cgi/bugreport.cgi?bug=54140 is similar but drifted off into a discussion of terminal mode. Note that In GNU Emacs 29.4 (build 2, x86_64-unknown-linux-gnu, GTK+ Version 3.24.42, cairo version 1.18.0) of 2024-06-25 built on a-fsn-de System Description: Void Linux Configured using: 'configure --with-pgtk --prefix=/usr --sysconfdir=/etc --sbindir=/usr/bin --bindir=/usr/bin --mandir=/usr/share/man --infodir=/usr/share/info --localstatedir=/var --host=x86_64-unknown-linux-gnu --build=x86_64-unknown-linux-gnu '--libdir=${exec_prefix}/lib64' --with-file-notification=inotify --with-modules --with-jpeg --with-tiff --with-gif --with-png --with-webp --with-xpm --with-rsvg --without-imagemagick --with-xml2 --with-gnutls --with-sound --with-m17n-flt --with-json --with-harfbuzz --with-cairo --with-libgmp --with-sqlite3 --with-tree-sitter --with-native-compilation=aot 'CFLAGS=-fno-PIE -mtune=generic -O2 -pipe -g -ffile-prefix-map=/builddir/emacs-29.4=.' 'CPPFLAGS= ' 'LDFLAGS=-no-pie -Wl,--as-needed '' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON LCMS2 LIBOTF LIBXML2 MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PGTK PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP XIM GTK3 ZLIB Important settings: value of $LC_ALL: en_AU.utf8 value of $LANG: C locale-coding-system: utf-8-unix Major mode: Messages Minor modes in effect: recentf-mode: t which-function-mode: t doom-modeline-mode: t global-goto-address-mode: t goto-address-mode: t pixel-scroll-precision-mode: t delete-selection-mode: t server-mode: t global-auto-revert-mode: t corfu-history-mode: t corfu-popupinfo-mode: t global-corfu-mode: t corfu-mode: t marginalia-mode: t savehist-mode: t vertico-buffer-mode: t vertico-mode: t popper-echo-mode: t popper-mode: t global-git-gutter-mode: t key-chord-mode: t which-key-mode: t override-global-mode: t desktop-save-mode: t tooltip-mode: t global-eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t buffer-read-only: t column-number-mode: t line-number-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: /home/bhepple/.emacs.d/elpa/transient-20240902.1048/transient hides /usr/share/emacs/29.4/lisp/transient /home/bhepple/.emacs.d/elpa/hierarchy-20190425.842/hierarchy hides /usr/share/emacs/29.4/lisp/emacs-lisp/hierarchy Features: (shadow sort mail-extr emacsbug vertico-directory cursor-sensor pulse face-remap consult-register consult display-line-numbers add-log python sh-script smie treesit executable conf-mode dired-aux disp-table org-indent oc-basic ol-eww eww mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect ol-docview doc-view ol-bibtex bibtex ol-bbdb ol-w3m ol-doi org-link-doi vc-git diff-mode vc-dispatcher vc-src rainbow-mode recentf tree-widget which-func doom-modeline doom-modeline-segments doom-modeline-env doom-modeline-core shrink-path f nerd-icons nerd-icons-faces nerd-icons-data nerd-icons-data-mdicon nerd-icons-data-flicon nerd-icons-data-codicon nerd-icons-data-devicon nerd-icons-data-sucicon nerd-icons-data-wicon nerd-icons-data-faicon nerd-icons-data-powerline nerd-icons-data-octicon nerd-icons-data-pomicon nerd-icons-data-ipsicon modus-operandi-theme modus-themes goto-addr pixel-scroll cua-base delsel server autorevert mu4e mu4e-org mu4e-notification notifications mu4e-main mu4e-view gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig gnus-sum gnus-group gnus-undo gnus-start gnus-dbus dbus gnus-cloud nnimap nnmail mail-source utf7 nnoo parse-time iso8601 gnus-spec gnus-int gnus-range gnus-win gnus nnheader range mu4e-headers mu4e-compose mu4e-draft mu4e-actions smtpmail mu4e-search mu4e-lists mu4e-bookmarks mu4e-mark mu4e-message flow-fill mule-util hl-line mu4e-contacts mu4e-update mu4e-folders mu4e-context mu4e-query-items mu4e-server mu4e-modeline mu4e-vars mu4e-helpers mu4e-config mu4e-window ido mu4e-obsolete cape corfu-history corfu-popupinfo corfu orderless marginalia savehist vertico-buffer vertico compat compat-30 compat-macs dumb-jump popup dash s polymode poly-lock polymode-base polymode-weave polymode-export polymode-compat polymode-methods polymode-core polymode-classes eieio-custom eieio-base color org-beautify-theme popper-echo popper pdf-tools cus-edit cus-load pdf-view jka-compr pdf-cache pdf-info tq pdf-util pdf-macs image-mode exif git-gutter key-chord comp comp-cstr speedbar ezimage dframe json-navigator hierarchy eglot external-completion array filenotify jsonrpc ert ewoc debug backtrace xref flymake-proc flymake warnings project imenu advice elfeed-dashboard org-element org-persist xdg org-id org-refile org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-src ob-comint org-pcomplete pcomplete org-list org-footnote org-faces org-entities noutline outline icons ob-emacs-lisp ob-core ob-eval org-cycle org-table org-keys oc org-loaddefs find-func cal-menu calendar cal-loaddefs ol rx org-fold org-fold-core org-compat org-version org-macs format-spec elfeed-show elfeed-search message sendmail yank-media dired dired-loaddefs rfc822 mml mml-sec epa epg rfc6068 epg-config gnus-util mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils gmm-utils mailheader shr pixel-fill kinsoku puny svg dom elfeed-csv elfeed elfeed-curl elfeed-log elfeed-db elfeed-lib time-date avl-tree generator url-queue url-file xml-query xml bookmark pp wid-edit use-package-ensure rpm-spec-mode gk-ibuffer ibuf-macs ibuffer-vc ibuf-ext ibuffer ibuffer-loaddefs which-key use-package-diminish edmacro kmacro use-package-bind-key bind-key easy-mmode desktop frameset whitespace ripgrep derived thingatpt grep compile text-property-search comint ansi-osc ansi-color ring use-package-core cl-extra help-mode finder-inf cl all-the-icons-autoloads browse-kill-ring-autoloads cape-autoloads casual-re-builder-autoloads casual-lib-autoloads cc-isearch-menu-autoloads company-autoloads consult-dir-autoloads corfu-autoloads csv-mode-autoloads discover-my-major-autoloads doom-modeline-autoloads dumb-jump-autoloads elfeed-dashboard-autoloads elfeed-autoloads embark-consult-autoloads consult-autoloads embark-autoloads esup-autoloads expand-region-autoloads git-gutter-autoloads helpful-autoloads elisp-refs-autoloads ibuffer-vc-autoloads iflipb-autoloads json-navigator-autoloads hierarchy-autoloads key-chord-autoloads magit-autoloads pcase magit-section-autoloads makey-autoloads marginalia-autoloads markdown-mode-autoloads neotree-autoloads nerd-icons-autoloads orderless-autoloads org-beautify-theme-autoloads pdf-tools-autoloads polymode-autoloads popper-autoloads popup-autoloads rainbow-mode-autoloads ripgrep-autoloads shrink-path-autoloads f-autoloads dash-autoloads s-autoloads tablist-autoloads transient-autoloads transpose-frame-autoloads vertico-autoloads vterm-autoloads which-key-autoloads with-editor-autoloads info compat-autoloads package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs password-cache json subr-x map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/pgtk-win pgtk-win term/common-win pgtk-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine 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 composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads dbusbind inotify dynamic-setting system-font-setting font-render-setting cairo gtk pgtk lcms2 multi-tty make-network-process native-compile emacs) Memory information: ((conses 16 1047091 813325) (symbols 48 46754 2) (strings 32 435593 56036) (string-bytes 1 14207078) (vectors 16 131693) (vector-slots 8 2089700 953079) (floats 8 16344 2664) (intervals 56 5315 2372) (buffers 984 52))
bug-gnu-emacs <at> gnu.org
:bug#73593
; Package emacs
.
(Wed, 02 Oct 2024 06:55:01 GMT) Full text and rfc822 format available.Message #8 received at 73593 <at> debbugs.gnu.org (full text, mbox):
From: Eli Zaretskii <eliz <at> gnu.org> To: Bob Hepple <bob.hepple <at> gmail.com>, martin rudalics <rudalics <at> gmx.at> Cc: 73593 <at> debbugs.gnu.org Subject: Re: bug#73593: 29.4; desktop-save-mode does not store window configurations Date: Wed, 02 Oct 2024 09:53:51 +0300
> From: Bob Hepple <bob.hepple <at> gmail.com> > Date: Wed, 2 Oct 2024 10:41:41 +1000 > > >From emacs -Q: > M-x desktop-save-mode > C-x r w 0 > C-x C-c > restart emacs -Q > C-u M-x desktop-read > C-x r j 0 > Error: "Register doesn't contain a buffer position or configuration" > > The .emacs.desktop file contains: > (setq register-alist (list (list 48 "Unprintable entity" (let ((mk > (make-marker))) (add-hook 'desktop-delay-hook (lambda nil (set-marker > mk 146 (get-buffer "*scratch*")))) mk)))) > > ... which is useless Martin, is there any practical way of preserving a window-configuration across Emacs sessions? The object current-window-configuration returns is exposed to Lisp as an opaque object, and I don't think we can meaningfully serialize it, can we? So perhaps the solution is to filter such registers from register-alist when we save desktop? > https://debbugs.gnu.org/cgi/bugreport.cgi?bug=54140 is similar but > drifted off into a discussion of terminal mode. No, that's a very different issue, and it has been solved long ago, AFAIR.
bug-gnu-emacs <at> gnu.org
:bug#73593
; Package emacs
.
(Wed, 02 Oct 2024 07:42:02 GMT) Full text and rfc822 format available.Message #11 received at 73593 <at> debbugs.gnu.org (full text, mbox):
From: martin rudalics <rudalics <at> gmx.at> To: Eli Zaretskii <eliz <at> gnu.org>, Bob Hepple <bob.hepple <at> gmail.com> Cc: 73593 <at> debbugs.gnu.org Subject: Re: bug#73593: 29.4; desktop-save-mode does not store window configurations Date: Wed, 2 Oct 2024 09:41:31 +0200
> Martin, is there any practical way of preserving a > window-configuration across Emacs sessions? We added window states for that purpose. > The object > current-window-configuration returns is exposed to Lisp as an opaque > object, and I don't think we can meaningfully serialize it, can we? It would be very tedious to do that and the result would be something like a window state anyway. > So perhaps the solution is to filter such registers from > register-alist when we save desktop? This is the most reasonable way IMO. The other two solutions would be to optionally proceed as follows: - Whenever we save a configuration in a register, make a shadow register where we save the state and use that when we save the desktop. - When saving the desktop, temporarily restore the configuration stored in the register (if its frame is still live), save the state of that frame in a register and restore its configuration again. For both, register.el would have to be able to handle window states. martin
Stefan Kangas <stefankangas <at> gmail.com>
to control <at> debbugs.gnu.org
.
(Sun, 03 Nov 2024 06:00:04 GMT) Full text and rfc822 format available.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.