all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Peter Neidhardt <pe.neidhardt@googlemail.com>
To: 28945@debbugs.gnu.org
Subject: bug#28945: 25.2; desktop auto save timer does not work
Date: Sun, 22 Oct 2017 17:19:07 +0100	[thread overview]
Message-ID: <87k1znuphh.fsf@gmail.com> (raw)


Recipe:

- Add (desktop-save-mode) to your init.el.

- Start Emacs.  Check the value of `window-configuration-change-hook':
the _global_ value should contain `desktop-auto-save-set-timer'.

- Save the desktop.

- Quit Emacs.

- Restart Emacs.

- Check `window-configuration-change-hook': the timer is gone.

I've narrowed down the issue to `desktop-read':

	;; ...
	(setq desktop-autosave-was-enabled
	  (memq 'desktop-auto-save-set-timer 'window-configuration-change-hook))
	(desktop-auto-save-disable)
	;; ...
	(if desktop-autosave-was-enabled (desktop-auto-save-enable))

The check is done on the _local_ value of
`window-configuration-change-hook', thus `desktop-auto-save-enable' will
never be re-run.

The fix is as simple as

	(setq desktop-autosave-was-enabled
	  (memq 'desktop-auto-save-set-timer (default-toplevel-value 'window-configuration-change-hook)))



I've been annoyed by this issue for years but before today I could not
find the logic behind the issue and did not know what to report.  The
issue effectively makes desktop-mode half-useless since desktop won't be
saved when Emacs gets killed too abruptly (crashes, power outage...).

Did nobody notice this before or is it that nobody could figure out the
logic like me?



While we are at it, we might change the documentation and value of `desktop-auto-save-timeout':

	Number of seconds idle time before auto-save of the desktop.
	The idle timer activates auto-saving only when window configuration changes.

This is terribly confusing, isn't it?  One might wonder whether it's a
timer that saves every 30 seconds or the configuration change.

The actual logic is as follow:

- On every window configuration change, the timer is _reset_.

- When idle for `desktop-auto-save-timeout', the desktop is saved.  The
  timer is run only _once_.

In practice, this means that the user actually be idle for 30 seconds or
else it won't get saved at all.  Does this happen a lot in practice?
I'm don't think so.  Considering the timer runs only once per window
conf change, it does not run very often, in particular it runs only once
when nothing is happening.

So I think it's wiser to set the default to something much lower, say 5
or 10.



Lastly, a minor nit: desktop.el adds a lambda to `after-init-hook'; can
we turn this into a named function?



In GNU Emacs 25.2.1 (x86_64-pc-linux-gnu, GTK+ Version 3.22.16)
 of 2017-09-02 built on dhiov23k
Windowing system distributor 'The X.Org Foundation', version 11.0.11905000
System Description:	Gentoo Base System release 2.4.1

Configured using:
 'configure --prefix=/usr --build=x86_64-pc-linux-gnu
 --host=x86_64-pc-linux-gnu --mandir=/usr/share/man
 --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc
 --localstatedir=/var/lib --disable-dependency-tracking
 --disable-silent-rules --docdir=/usr/share/doc/emacs-25.2
 --htmldir=/usr/share/doc/emacs-25.2/html --libdir=/usr/lib64
 --program-suffix=-emacs-25 --infodir=/usr/share/info/emacs-25
 --localstatedir=/var
 --enable-locallisppath=/etc/emacs:/usr/share/emacs/site-lisp
 --with-gameuser=:gamestat --without-compress-install
 --with-file-notification=inotify --enable-acl --without-dbus
 --without-modules --without-gpm --without-hesiod --without-kerberos
 --without-kerberos5 --with-xml2 --without-selinux --with-gnutls
 --without-wide-int --with-zlib --with-sound=alsa --with-x --without-ns
 --without-gconf --without-gsettings --without-toolkit-scroll-bars
 --with-gif --with-jpeg --with-png --with-rsvg --with-tiff --with-xpm
 --with-imagemagick --with-xft --without-cairo --without-libotf
 --without-m17n-flt --with-x-toolkit=gtk3 --without-xwidgets
 GENTOO_PACKAGE=app-editors/emacs-25.2 'CFLAGS=-march=ivybridge -O2
 -pipe' CPPFLAGS= 'LDFLAGS=-Wl,-O1 -Wl,--as-needed''

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND NOTIFY ACL GNUTLS LIBXML2
FREETYPE XFT ZLIB GTK3 X11

Important settings:
  value of $LANG: en_US.utf8
  locale-coding-system: utf-8-unix

Major mode: Debbugs

Minor modes in effect:
  semantic-minor-modes-format: ((:eval (if (or semantic-highlight-edits-mode semantic-show-unmatched-syntax-mode)  S)))
  recentf-mode: t
  pdf-occur-global-minor-mode: t
  helm-top-poll-mode: t
  dired-async-mode: t
  helm-mode: t
  diff-auto-refine-mode: t
  helm-descbinds-mode: t
  global-evil-mc-extras-mode: t
  evil-mc-extras-mode: t
  global-evil-mc-mode: t
  evil-mc-mode: t
  async-bytecomp-package-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  shell-dirtrack-mode: t
  evil-mode: t
  evil-local-mode: t
  show-paren-mode: t
  savehist-mode: t
  save-place-mode: t
  desktop-save-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  window-divider-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  buffer-read-only: t
  size-indication-mode: t
  line-number-mode: t
  transient-mark-mode: t





             reply	other threads:[~2017-10-22 16:19 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-22 16:19 Peter Neidhardt [this message]
2017-10-22 17:11 ` bug#28945: 25.2; desktop auto save timer does not work Eli Zaretskii
2017-10-22 17:41   ` Peter Neidhardt
2017-10-22 17:58     ` Eli Zaretskii
2017-10-23 19:28       ` Peter Neidhardt
2017-10-23 19:35         ` Eli Zaretskii
2017-10-23 19:57           ` Peter Neidhardt
2017-10-23 20:02             ` Eli Zaretskii
2017-10-24 21:46           ` Richard Stallman
2017-10-25  2:32             ` Eli Zaretskii
2017-10-26  3:42               ` Richard Stallman
2017-10-26 10:01                 ` Pierre Neidhardt
2017-10-27  2:42                   ` Richard Stallman
2017-10-27  9:12                     ` Eli Zaretskii
2017-10-28 21:49                       ` Richard Stallman
2017-10-26 15:53                 ` Eli Zaretskii
2017-10-26 16:19                   ` Drew Adams
2017-10-26 17:10                     ` Eli Zaretskii
2017-10-26 18:28                       ` Drew Adams
2017-10-26 18:46                         ` Eli Zaretskii
2017-10-28 12:12 ` Eli Zaretskii
2017-11-05 16:18   ` Peter Neidhardt
2017-11-11  9:58     ` Eli Zaretskii
2017-11-11 11:59       ` Peter Neidhardt

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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87k1znuphh.fsf@gmail.com \
    --to=pe.neidhardt@googlemail.com \
    --cc=28945@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 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.