Is it possible to configure Emacs, so that it saves all files when the emacs window loses focus?
I added focus hooks to Gnu Emacs 24.4.
They are called focus-in-hook
and focus-out-hook
.
You can add
(defun save-all () (interactive) (save-some-buffers t)) (add-hook 'focus-out-hook 'save-all)
to your .emacs file and it should save all files on loss of focus.
I use this, it will only work if emacs is running under X (like it probably would in something like ubuntu).
(when (and (featurep 'x) window-system) (defvar on-blur--saved-window-id 0 "Last known focused window.") (defvar on-blur--timer nil "Timer refreshing known focused window.") (defun on-blur--refresh () "Runs on-blur-hook if emacs has lost focus." (let* ((active-window (x-window-property "_NET_ACTIVE_WINDOW" nil "WINDOW" 0 nil t)) (active-window-id (if (numberp active-window) active-window (string-to-number (format "%x00%x" (car active-window) (cdr active-window)) 16))) (emacs-window-id (string-to-number (frame-parameter nil 'outer-window-id)))) (when (and (= emacs-window-id on-blur--saved-window-id) (not (= active-window-id on-blur--saved-window-id))) (run-hooks 'on-blur-hook)) (setq on-blur--saved-window-id active-window-id) (run-with-timer 1 nil 'on-blur--refresh))) (add-hook 'on-blur-hook #'(lambda () (save-some-buffers t))) (on-blur--refresh))
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With