* bug#60600: 30.0.50; [PATCH] Document manual desktop restore @ 2023-01-06 10:33 Manuel Giraud 2023-01-06 11:54 ` Eli Zaretskii 0 siblings, 1 reply; 8+ messages in thread From: Manuel Giraud @ 2023-01-06 10:33 UTC (permalink / raw) To: 60600 [-- Attachment #1: Type: text/plain, Size: 63 bytes --] Hi, This patch document how to do a manual desktop restore. [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-Document-manual-desktop-restore.patch --] [-- Type: text/x-patch, Size: 1523 bytes --] From b7950b2c05bf22fb69d6554383bf09fc4eb8036a Mon Sep 17 00:00:00 2001 From: Manuel Giraud <manuel@ledu-giraud.fr> Date: Fri, 6 Jan 2023 11:29:20 +0100 Subject: [PATCH] Document manual desktop restore * doc/emacs/misc.texi (Saving Emacs Sessions): Precises how to do a manual restore after a manual save. --- doc/emacs/misc.texi | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi index c706b727e6f..ec24d43c46a 100644 --- a/doc/emacs/misc.texi +++ b/doc/emacs/misc.texi @@ -2733,11 +2733,13 @@ Saving Emacs Sessions @findex desktop-save @vindex desktop-save-mode You can save the desktop manually with the command @kbd{M-x -desktop-save}. You can also enable automatic saving of the desktop -when you exit Emacs, and automatic restoration of the last saved -desktop when Emacs starts: use the Customization buffer (@pxref{Easy -Customization}) to set @code{desktop-save-mode} to @code{t} for future -sessions, or add this line in your init file (@pxref{Init File}): +desktop-save}. You can then restore the desktop manually with the +command @kbd{M-x desktop-read}. You can also enable automatic saving +of the desktop when you exit Emacs, and automatic restoration of the +last saved desktop when Emacs starts: use the Customization buffer +(@pxref{Easy Customization}) to set @code{desktop-save-mode} to +@code{t} for future sessions, or add this line in your init file +(@pxref{Init File}): @example (desktop-save-mode 1) -- 2.39.0 [-- Attachment #3: Type: text/plain, Size: 7865 bytes --] In GNU Emacs 30.0.50 (build 1, x86_64-unknown-openbsd7.2, cairo version 1.17.6) of 2023-01-06 built on computer Repository revision: 3fcbb865853d7c364cf7c2986ead9e258f449f97 Repository branch: master Windowing system distributor 'The X.Org Foundation', version 11.0.12101004 System Description: OpenBSD computer 7.2 GENERIC.MP#903 amd64 Configured using: 'configure --prefix=/home/manuel/emacs --bindir=/home/manuel/bin --with-x-toolkit=no --without-sound --without-compress-install CPPFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/lib' Configured features: CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GSETTINGS HARFBUZZ JPEG JSON LCMS2 LIBOTF LIBXML2 MODULES NOTIFY KQUEUE OLDXMENU PDUMPER PNG RSVG SQLITE3 THREADS TIFF TREE_SITTER WEBP X11 XDBE XIM XINPUT2 XPM ZLIB Important settings: value of $LC_ALL: en_US.UTF-8 locale-coding-system: utf-8-unix Major mode: Texinfo Minor modes in effect: global-git-commit-mode: t magit-auto-revert-mode: t bug-reference-prog-mode: t auto-revert-mode: t display-time-mode: t display-battery-mode: t server-mode: t shell-dirtrack-mode: t repeat-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 line-number-mode: t auto-fill-function: do-auto-fill transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: /home/manuel/.emacs.d/elpa/ef-themes-0.10.0/theme-loaddefs hides /home/manuel/emacs/share/emacs/30.0.50/lisp/theme-loaddefs /home/manuel/.emacs.d/elpa/transient-0.3.7/transient hides /home/manuel/emacs/share/emacs/30.0.50/lisp/transient Features: (shadow sort mail-extr emacsbug whitespace magit-patch misearch multi-isearch shortdoc help-fns radix-tree executable texinfo texinfo-loaddefs magit-extras face-remap magit-bookmark magit-submodule magit-obsolete magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-tag magit-merge magit-branch magit-reset magit-files magit-refs magit-status magit magit-repos magit-apply magit-wip magit-log which-func magit-diff smerge-mode diff git-commit log-edit pcvs-util add-log magit-core magit-autorevert magit-margin magit-transient magit-process with-editor magit-mode transient magit-git magit-section magit-utils dash pulse ibuf-ext ibuffer ibuffer-loaddefs css-mode treesit smie imenu org-indent rng-xsd xsd-regexp rng-cmpct rng-nxml rng-valid rng-loc rng-uri rng-parse nxml-parse rng-match rng-dt rng-util rng-pttrn nxml-ns nxml-mode nxml-outln nxml-rap sgml-mode facemenu nxml-util nxml-enc xmltok view oc-basic org-element org-persist org-id org-refile avl-tree ol-eww eww xdg url-queue mm-url ol-rmail ol-mhe ol-irc ol-info ol-gnus nnselect ol-docview doc-view jka-compr image-mode exif ol-bibtex bibtex ol-bbdb ol-w3m ol-doi org-link-doi epa-file bug-reference gnus-dired autorevert filenotify vc-git diff-mode vc-dispatcher vc-svn desktop frameset paredit edmacro time battery exwm-randr xcb-randr exwm-config exwm exwm-input xcb-keysyms xcb-xkb exwm-manage exwm-floating xcb-cursor xcb-render exwm-layout exwm-workspace exwm-core xcb-ewmh xcb-icccm xcb xcb-xproto xcb-types xcb-debug kmacro server stimmung-themes modus-operandi-theme modus-themes ytdious osm mingus libmpdee reporter edebug debug backtrace transmission diary-lib diary-loaddefs color calc-bin calc-ext calc calc-loaddefs rect calc-macs w3m-load mu4e mu4e-org mu4e-main mu4e-view 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-server mu4e-context mu4e-vars mu4e-helpers mu4e-config bookmark ido supercite regi ebdb-message ebdb-gnus gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime gnutls dig gnus-sum shr pixel-fill kinsoku url-file svg dom gnus-group gnus-undo gnus-start gnus-dbus gnus-cloud nnimap nnmail mail-source utf7 nnoo gnus-spec gnus-int gnus-range message sendmail yank-media puny rfc822 mml mml-sec epa epg rfc6068 epg-config mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums gmm-utils mailheader gnus-win gnus nnheader gnus-util mail-utils range mm-util mail-prsvr ebdb-mua ebdb-com crm ebdb-format ebdb mailabbrev eieio-opt cl-extra help-mode speedbar ezimage dframe eieio-base pcase timezone org ob ob-tangle ob-ref ob-lob ob-table ob-exp org-macro org-src ob-comint org-pcomplete org-list org-footnote org-faces org-entities ob-emacs-lisp ob-core ob-eval org-cycle org-table ol org-fold org-fold-core org-keys oc org-loaddefs find-func cal-menu calendar cal-loaddefs org-version org-compat org-macs visual-basic-mode cl web-mode derived disp-table erlang-start smart-tabs-mode skeleton cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs slime-asdf grep slime-tramp tramp tramp-loaddefs trampver tramp-integration cus-edit cus-load wid-edit files-x tramp-compat rx shell pcomplete parse-time iso8601 time-date ls-lisp format-spec slime-fancy slime-indentation slime-cl-indent cl-indent slime-trace-dialog slime-fontifying-fu slime-package-fu slime-references slime-compiler-notes-tree advice slime-scratch slime-presentations bridge slime-macrostep macrostep slime-mdot-fu slime-enclosing-context slime-fuzzy slime-fancy-trace slime-fancy-inspector slime-c-p-c slime-editing-commands slime-autodoc slime-repl slime-parse slime compile text-property-search etags fileloop generator xref project arc-mode archive-mode noutline outline icons pp comint ansi-osc ansi-color ring hyperspec thingatpt slime-autoloads dired-aux dired-x dired dired-loaddefs notifications dbus xml repeat easy-mmode stimmung-themes-autoloads rust-mode-autoloads ebdb-autoloads magit-autoloads debbugs-autoloads git-commit-autoloads magit-section-autoloads ef-themes-autoloads with-editor-autoloads paredit-autoloads dash-autoloads ytdious-autoloads transmission-autoloads transient-autoloads exwm-autoloads hyperbole-autoloads detached-autoloads info 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/x-win x-win term/common-win x-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 kqueue lcms2 dynamic-setting system-font-setting font-render-setting cairo xinput2 x multi-tty make-network-process emacs) Memory information: ((conses 16 755171 92149) (symbols 48 59596 3) (strings 32 194558 7376) (string-bytes 1 6141566) (vectors 16 113719) (vector-slots 8 2244387 111508) (floats 8 618 373) (intervals 56 24661 1377) (buffers 984 91)) -- Manuel Giraud ^ permalink raw reply related [flat|nested] 8+ messages in thread
* bug#60600: 30.0.50; [PATCH] Document manual desktop restore 2023-01-06 10:33 bug#60600: 30.0.50; [PATCH] Document manual desktop restore Manuel Giraud @ 2023-01-06 11:54 ` Eli Zaretskii 2023-01-06 12:26 ` Manuel Giraud 0 siblings, 1 reply; 8+ messages in thread From: Eli Zaretskii @ 2023-01-06 11:54 UTC (permalink / raw) To: Manuel Giraud; +Cc: 60600 > From: Manuel Giraud <manuel@ledu-giraud.fr> > Date: Fri, 06 Jan 2023 11:33:20 +0100 > > diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi > index c706b727e6f..ec24d43c46a 100644 > --- a/doc/emacs/misc.texi > +++ b/doc/emacs/misc.texi > @@ -2733,11 +2733,13 @@ Saving Emacs Sessions > @findex desktop-save > @vindex desktop-save-mode > You can save the desktop manually with the command @kbd{M-x > -desktop-save}. You can also enable automatic saving of the desktop > -when you exit Emacs, and automatic restoration of the last saved > -desktop when Emacs starts: use the Customization buffer (@pxref{Easy > -Customization}) to set @code{desktop-save-mode} to @code{t} for future > -sessions, or add this line in your init file (@pxref{Init File}): > +desktop-save}. You can then restore the desktop manually with the > +command @kbd{M-x desktop-read}. You can also enable automatic saving > +of the desktop when you exit Emacs, and automatic restoration of the > +last saved desktop when Emacs starts: use the Customization buffer > +(@pxref{Easy Customization}) to set @code{desktop-save-mode} to > +@code{t} for future sessions, or add this line in your init file > +(@pxref{Init File}): Thanks. The new text seems to imply that using "M-x desktop-save" necessarily means restoring must also be manual. But this is only true if desktop-save-mode was not enabled. I have the mode enabled, and I still sometimes save the desktop manually, whenever I make some significant change to the session, to make sure the new arrangement is saved and not lost due to some catastrophe. So the change needs to be reworded not to imply the mistaken interpretation that saving manually requires restoring manually. ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#60600: 30.0.50; [PATCH] Document manual desktop restore 2023-01-06 11:54 ` Eli Zaretskii @ 2023-01-06 12:26 ` Manuel Giraud 2023-01-06 13:15 ` Eli Zaretskii 0 siblings, 1 reply; 8+ messages in thread From: Manuel Giraud @ 2023-01-06 12:26 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 60600 Eli Zaretskii <eliz@gnu.org> writes: Hi Eli, [...] > The new text seems to imply that using "M-x desktop-save" necessarily > means restoring must also be manual. But this is only true if > desktop-save-mode was not enabled. I have the mode enabled, and I > still sometimes save the desktop manually, whenever I make some > significant change to the session, to make sure the new arrangement is > saved and not lost due to some catastrophe. > > So the change needs to be reworded not to imply the mistaken > interpretation that saving manually requires restoring manually. Ok but OTOH, when you are not using desktop-save-mode (as I do) after the manual save explanation you are left wondering « how could I restore it when I need to? » and then the text goes on about setting up desktop-save-mode. That's why I placed this sentence here. Maybe it need some rewording but I don't know how I could do it. And BTW, shouldn't desktop-revert be the user facing interface here? -- Manuel Giraud ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#60600: 30.0.50; [PATCH] Document manual desktop restore 2023-01-06 12:26 ` Manuel Giraud @ 2023-01-06 13:15 ` Eli Zaretskii 2023-01-06 13:30 ` Manuel Giraud 0 siblings, 1 reply; 8+ messages in thread From: Eli Zaretskii @ 2023-01-06 13:15 UTC (permalink / raw) To: Manuel Giraud; +Cc: 60600 > From: Manuel Giraud <manuel@ledu-giraud.fr> > Cc: 60600@debbugs.gnu.org > Date: Fri, 06 Jan 2023 13:26:27 +0100 > > Eli Zaretskii <eliz@gnu.org> writes: > > > The new text seems to imply that using "M-x desktop-save" necessarily > > means restoring must also be manual. But this is only true if > > desktop-save-mode was not enabled. I have the mode enabled, and I > > still sometimes save the desktop manually, whenever I make some > > significant change to the session, to make sure the new arrangement is > > saved and not lost due to some catastrophe. > > > > So the change needs to be reworded not to imply the mistaken > > interpretation that saving manually requires restoring manually. > > Ok but OTOH, when you are not using desktop-save-mode (as I do) after > the manual save explanation you are left wondering « how could I restore > it when I need to? » and then the text goes on about setting up > desktop-save-mode. That's why I placed this sentence here. Maybe it > need some rewording but I don't know how I could do it. I find the organization of the text in that section not very logical in general. It begins by describing not-very-important optional features. It should instead start by describing desktop-save-mode, since this is the recommended use of this facility, and leave the manual saving/restoring for later (explaining why one would want to do it manually). When it describes desktop-save-mode, it should mention that saving happens also from time to time, not just upon exit, something that for some reason is described much later in the section. And the order of describing the various optional features seems to lack any logic, which at least should be to describe the more significant/important options (such as desktop-load-locked-desktop, for example) first. Feel free to rewrite the section along the above lines; if not, I will do that soon, hopefully also taking care of the issue you raise. > And BTW, shouldn't desktop-revert be the user facing interface here? What do you mean? desktop-revert is described in that section (again, without any hint about when it could be useful). ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#60600: 30.0.50; [PATCH] Document manual desktop restore 2023-01-06 13:15 ` Eli Zaretskii @ 2023-01-06 13:30 ` Manuel Giraud 2023-01-06 14:06 ` Eli Zaretskii 0 siblings, 1 reply; 8+ messages in thread From: Manuel Giraud @ 2023-01-06 13:30 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 60600 Eli Zaretskii <eliz@gnu.org> writes: [...] > I find the organization of the text in that section not very logical > in general. It begins by describing not-very-important optional > features. It should instead start by describing desktop-save-mode, > since this is the recommended use of this facility, and leave the > manual saving/restoring for later (explaining why one would want to do > it manually). When it describes desktop-save-mode, it should mention > that saving happens also from time to time, not just upon exit, > something that for some reason is described much later in the section. > And the order of describing the various optional features seems to > lack any logic, which at least should be to describe the more > significant/important options (such as desktop-load-locked-desktop, > for example) first. Yes. I had the same feeling when reading this section. It starts talking about desktop-restore-frames before I had grasp what is the purpose of desktop. I'll see if I can come up with something and report here. >> And BTW, shouldn't desktop-revert be the user facing interface here? > > What do you mean? desktop-revert is described in that section (again, > without any hint about when it could be useful). I think I was mistaken desktop-read seems to be the correct interface as documented in desktop-save-mode function. -- Manuel Giraud ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#60600: 30.0.50; [PATCH] Document manual desktop restore 2023-01-06 13:30 ` Manuel Giraud @ 2023-01-06 14:06 ` Eli Zaretskii 2023-01-06 15:15 ` Manuel Giraud 0 siblings, 1 reply; 8+ messages in thread From: Eli Zaretskii @ 2023-01-06 14:06 UTC (permalink / raw) To: Manuel Giraud; +Cc: 60600 > From: Manuel Giraud <manuel@ledu-giraud.fr> > Cc: 60600@debbugs.gnu.org > Date: Fri, 06 Jan 2023 14:30:39 +0100 > > >> And BTW, shouldn't desktop-revert be the user facing interface here? > > > > What do you mean? desktop-revert is described in that section (again, > > without any hint about when it could be useful). > > I think I was mistaken desktop-read seems to be the correct interface as > documented in desktop-save-mode function. Yes, desktop-read should be mentioned there, as desktop-revert is only TRT if one ever uses a single desktop file. ^ permalink raw reply [flat|nested] 8+ messages in thread
* bug#60600: 30.0.50; [PATCH] Document manual desktop restore 2023-01-06 14:06 ` Eli Zaretskii @ 2023-01-06 15:15 ` Manuel Giraud 2023-01-07 8:49 ` Eli Zaretskii 0 siblings, 1 reply; 8+ messages in thread From: Manuel Giraud @ 2023-01-06 15:15 UTC (permalink / raw) To: Eli Zaretskii; +Cc: 60600 [-- Attachment #1: Type: text/plain, Size: 327 bytes --] Here is a rewrite/reshuffle of (Saving Emacs Sessions) node. I tried to explain desktop-save-mode right from the start. Then go on with the options by order of importance. As you suggest, I left desktop-load-locked-desktop quite high even though I find it a bit verbose and quite « implementation detail ». WDYT? [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: 0001-Rewrite-Saving-Emacs-Sessions-bug-60600.patch --] [-- Type: text/x-patch, Size: 9462 bytes --] From 7b38bc4b21ebb488a434a5c658f8d463d0131714 Mon Sep 17 00:00:00 2001 From: Manuel Giraud <manuel@ledu-giraud.fr> Date: Fri, 6 Jan 2023 11:29:20 +0100 Subject: [PATCH] Rewrite "Saving Emacs Sessions" (bug#60600) * doc/emacs/misc.texi (Saving Emacs Sessions): Organize this node more logically with main behaviour and important features at the top. --- doc/emacs/misc.texi | 136 +++++++++++++++++++++++--------------------- 1 file changed, 70 insertions(+), 66 deletions(-) diff --git a/doc/emacs/misc.texi b/doc/emacs/misc.texi index c706b727e6f..167181f5d1e 100644 --- a/doc/emacs/misc.texi +++ b/doc/emacs/misc.texi @@ -2704,38 +2704,13 @@ Saving Emacs Sessions @cindex reload files @cindex desktop -@vindex desktop-restore-frames Use the desktop library to save the state of Emacs from one session -to another. Once you save the Emacs @dfn{desktop}---the buffers, -their file names, major modes, buffer positions, and so on---then -subsequent Emacs sessions reload the saved desktop. By default, -the desktop also tries to save the frame and window configuration. -To disable this, set @code{desktop-restore-frames} to @code{nil}. -(See that variable's documentation for some related options -that you can customize to fine-tune this behavior.) - -@vindex desktop-files-not-to-save -Information about buffers visiting remote files is not saved by -default. Customize the variable @code{desktop-files-not-to-save} to -change this. +to another. The Emacs @dfn{desktop} consists of the buffers, their +file names, major modes, buffer positions, and so on. -@vindex frameset-filter-alist - When the desktop restores the frame and window configuration, it -uses the recorded values of frame parameters, disregarding any -settings for those parameters you have in your init file (@pxref{Init -File}). This means that frame parameters such as fonts and faces for -the restored frames will come from the desktop file, where they were -saved when you exited your previous Emacs session; any settings for -those parameters in your init file will be ignored. To disable this, -customize the value of @code{frameset-filter-alist} to filter out the -frame parameters you don't want to be restored. - -@findex desktop-save @vindex desktop-save-mode - You can save the desktop manually with the command @kbd{M-x -desktop-save}. You can also enable automatic saving of the desktop -when you exit Emacs, and automatic restoration of the last saved -desktop when Emacs starts: use the Customization buffer (@pxref{Easy +@findex desktop-save-mode +To enable this feature, use the Customization buffer (@pxref{Easy Customization}) to set @code{desktop-save-mode} to @code{t} for future sessions, or add this line in your init file (@pxref{Init File}): @@ -2743,25 +2718,69 @@ Saving Emacs Sessions (desktop-save-mode 1) @end example -@findex desktop-change-dir -@findex desktop-revert @vindex desktop-path +@vindex desktop-auto-save-timeout If you turn on @code{desktop-save-mode} in your init file, then when -Emacs starts, it looks for a saved desktop in the current directory. -(More precisely, it looks in the directories specified by -@code{desktop-path}, and uses the first desktop it finds.) -Thus, you can have separate saved desktops in different directories, -and the starting directory determines which one Emacs reloads. You +Emacs starts, it looks for a saved desktop in @code{desktop-path} +(which defaults to @code{user-emacs-directory} and then your home +directory) and uses the first desktop it finds. While Emacs runs with +@code{desktop-save-mode} turned on, it by default auto-saves the +desktop whenever any of it changes. The variable +@code{desktop-auto-save-timeout} determines how frequently Emacs +checks for modifications to your desktop. The desktop is also saved +when you exit Emacs. + +@findex desktop-change-dir +@findex desktop-revert + You can have separate saved desktops in different directories. You can save the current desktop and reload one saved in another directory by typing @kbd{M-x desktop-change-dir}. Typing @kbd{M-x desktop-revert} reverts to the desktop previously reloaded. - Specify the option @samp{--no-desktop} on the command line when you -don't want it to reload any saved desktop. This turns off -@code{desktop-save-mode} for the current session. Starting Emacs with -the @samp{--no-init-file} option also disables desktop reloading, -since it bypasses the init file, where @code{desktop-save-mode} is -usually turned on. +@vindex desktop-load-locked-desktop + The file in which Emacs saves the desktop is locked while the +session runs, to avoid inadvertently overwriting it from another Emacs +session. That lock is normally removed when Emacs exits, but if Emacs +or your system crashes, the lock stays, and when you restart Emacs, it +will by default ask you whether to use the locked desktop file. You +can avoid the question by customizing the variable +@code{desktop-load-locked-desktop} to either @code{nil}, which means +never load the desktop in this case, or @code{t}, which means load the +desktop without asking. Finally, the @code{check-pid} value means to +load the file if the Emacs process that has locked the desktop is not +running on the local machine. This should not be used in +circumstances where the locking Emacs might still be running on +another machine. This could be the case in multi-user environments +where your home directory is mounted remotely using NFS or similar. + +@findex desktop-save +@findex desktop-read + Whenever you want, you can use the command @kbd{M-x desktop-save} to +force saving the current desktop. If you do not want to use the +automatic @code{desktop-save-mode}, you can use @kbd{M-x desktop-save} +and then @kbd{M-x desktop-read} to restore a previous desktop. + +@vindex desktop-restore-frames + By default, the desktop also tries to save the frame and window +configuration. To disable this, set @code{desktop-restore-frames} to +@code{nil}. (See that variable's documentation for some related +options that you can customize to fine-tune this behavior.) + +@vindex desktop-files-not-to-save + Information about buffers visiting remote files is not saved by +default. Customize the variable @code{desktop-files-not-to-save} to +change this. + +@vindex frameset-filter-alist + When the desktop restores the frame and window configuration, it +uses the recorded values of frame parameters, disregarding any +settings for those parameters you have in your init file (@pxref{Init +File}). This means that frame parameters such as fonts and faces for +the restored frames will come from the desktop file, where they were +saved when you exited your previous Emacs session; any settings for +those parameters in your init file will be ignored. To disable this, +customize the value of @code{frameset-filter-alist} to filter out the +frame parameters you don't want to be restored. @vindex desktop-restore-eager By default, all the buffers in the desktop are restored in one go. @@ -2780,30 +2799,12 @@ Saving Emacs Sessions @code{desktop-clear-preserve-buffers-regexp}, whose value is a regular expression matching the names of buffers not to kill. - If you want to save minibuffer history from one session to -another, use the @code{savehist} library. - -@vindex desktop-auto-save-timeout - While Emacs runs with @code{desktop-save-mode} turned on, it by -default auto-saves the desktop whenever any of it changes. The -variable @code{desktop-auto-save-timeout} determines how frequently -Emacs checks for modifications to your desktop. - -@vindex desktop-load-locked-desktop - The file in which Emacs saves the desktop is locked while the -session runs, to avoid inadvertently overwriting it from another Emacs -session. That lock is normally removed when Emacs exits, but if Emacs -or your system crashes, the lock stays, and when you restart Emacs, it -will by default ask you whether to use the locked desktop file. You -can avoid the question by customizing the variable -@code{desktop-load-locked-desktop} to either @code{nil}, which means -never load the desktop in this case, or @code{t}, which means load the -desktop without asking. Finally, the @code{check-pid} value means to -load the file if the Emacs process that has locked the desktop is not -running on the local machine. This should not be used in -circumstances where the locking Emacs might still be running on -another machine. This could be the case in multi-user environments -where your home directory is mounted remotely using NFS or similar. + Specify the option @samp{--no-desktop} on the command line when you +don't want it to reload any saved desktop. This turns off +@code{desktop-save-mode} for the current session. Starting Emacs with +the @samp{--no-init-file} option also disables desktop reloading, +since it bypasses the init file, where @code{desktop-save-mode} is +usually turned on. @cindex desktop restore in daemon mode When Emacs starts in daemon mode, it cannot ask you any questions, @@ -2817,6 +2818,9 @@ Saving Emacs Sessions function that you add to @code{server-after-make-frame-hook} (@pxref{Creating Frames,,, elisp, The Emacs Lisp Reference Manual}). + If you want to save minibuffer history from one session to +another, use the @code{savehist} library. + @node Recursive Edit @section Recursive Editing Levels @cindex recursive editing level -- 2.39.0 [-- Attachment #3: Type: text/plain, Size: 18 bytes --] -- Manuel Giraud ^ permalink raw reply related [flat|nested] 8+ messages in thread
* bug#60600: 30.0.50; [PATCH] Document manual desktop restore 2023-01-06 15:15 ` Manuel Giraud @ 2023-01-07 8:49 ` Eli Zaretskii 0 siblings, 0 replies; 8+ messages in thread From: Eli Zaretskii @ 2023-01-07 8:49 UTC (permalink / raw) To: Manuel Giraud; +Cc: 60600-done > From: Manuel Giraud <manuel@ledu-giraud.fr> > Cc: 60600@debbugs.gnu.org > Date: Fri, 06 Jan 2023 16:15:08 +0100 > > Here is a rewrite/reshuffle of (Saving Emacs Sessions) node. > > I tried to explain desktop-save-mode right from the start. Then go on > with the options by order of importance. As you suggest, I left > desktop-load-locked-desktop quite high even though I find it a bit > verbose and quite « implementation detail ». WDYT? Thanks, this LGTM. So I've installed it on the emacs-29 release branch, and then made a few minor changes in the wording and the arrangement of the text. And with this, I'm closing this bug. ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2023-01-07 8:49 UTC | newest] Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2023-01-06 10:33 bug#60600: 30.0.50; [PATCH] Document manual desktop restore Manuel Giraud 2023-01-06 11:54 ` Eli Zaretskii 2023-01-06 12:26 ` Manuel Giraud 2023-01-06 13:15 ` Eli Zaretskii 2023-01-06 13:30 ` Manuel Giraud 2023-01-06 14:06 ` Eli Zaretskii 2023-01-06 15:15 ` Manuel Giraud 2023-01-07 8:49 ` Eli Zaretskii
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.