[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[nongnu] elpa/workroom 09ff23553e 22/74: Add desktop saving support
From: |
ELPA Syncer |
Subject: |
[nongnu] elpa/workroom 09ff23553e 22/74: Add desktop saving support |
Date: |
Sun, 27 Nov 2022 16:03:26 -0500 (EST) |
branch: elpa/workroom
commit 09ff23553ee452eba8e6d90c498df31196acc6f7
Author: Akib Azmain Turja <akib@disroot.org>
Commit: Akib Azmain Turja <akib@disroot.org>
Add desktop saving support
---
workroom.el | 38 ++++++++++++++++++++++++++++++++++++++
1 file changed, 38 insertions(+)
diff --git a/workroom.el b/workroom.el
index a1bdc51cce..4da3eef0b5 100644
--- a/workroom.el
+++ b/workroom.el
@@ -1040,5 +1040,43 @@ When prefix arg is given, don't restrict." fn)
(remove-hook 'after-make-frame-functions #'workroom--init-frame)
(remove-hook 'kill-buffer-hook #'workroom--remove-buffer-refs)))
+(defun workroom--desktop-inject-restore-code ()
+ "Inject workroom restore code in desktop file."
+ ;; Save window configuration on all frames.
+ (dolist (frame (frame-list))
+ (when (frame-parameter frame 'workroom-current-room)
+ (with-selected-frame frame
+ (setf (workroom-view-window-config (workroom-current-view))
+ (workroom--save-window-config)))))
+ ;; Inject restoring code.
+ (let ((time (format-time-string "%s%N")))
+ (insert (format "
+;; Workroom section:
+(defun workroom--desktop-restore-%s ()
+ \"Restore workrooms.\"
+ (remove-hook 'desktop-after-read-hook
+ #'workroom--desktop-restore-%s)
+ (when (require 'workroom nil t)
+ (workroom-mode +1)
+ (workroom--restore-rooms '%S)))
+(add-hook 'desktop-after-read-hook #'workroom--desktop-restore-%s)
+"
+ time time
+ `(workroom-set
+ . ,(mapcar #'workroom--encode
+ (remove (workroom-get-default)
+ workroom--rooms)))
+ time))))
+
+;;;###autoload
+(define-minor-mode workroom-desktop-save-mode
+ "Toggle saving workrooms with desktop mode."
+ :global t
+ (if workroom-desktop-save-mode
+ (add-hook 'desktop-save-hook
+ #'workroom--desktop-inject-restore-code)
+ (remove-hook 'desktop-save-hook
+ #'workroom--desktop-inject-restore-code)))
+
(provide 'workroom)
;;; workroom.el ends here
- [nongnu] branch elpa/workroom created (now 13e648f3db), ELPA Syncer, 2022/11/27
- [nongnu] elpa/workroom a65420c916 09/74: Make summary line smaller, ELPA Syncer, 2022/11/27
- [nongnu] elpa/workroom 6123963e7c 02/74: Make it usable, ELPA Syncer, 2022/11/27
- [nongnu] elpa/workroom ec81969d02 05/74: Bump version, ELPA Syncer, 2022/11/27
- [nongnu] elpa/workroom 9f2390799e 08/74: Rename workroom--handle-bookmark to workroom-bookmark-jump, ELPA Syncer, 2022/11/27
- [nongnu] elpa/workroom fd6edce372 11/74: Wrap key bindings in defvar, ELPA Syncer, 2022/11/27
- [nongnu] elpa/workroom 69471bbd33 04/74: Add commentary and README, ELPA Syncer, 2022/11/27
- [nongnu] elpa/workroom 15fc134c91 03/74: Fix workroom-bookmark, ELPA Syncer, 2022/11/27
- [nongnu] elpa/workroom b43818f6c7 01/74: Minimal working implementation with bookmark support, ELPA Syncer, 2022/11/27
- [nongnu] elpa/workroom 09ff23553e 22/74: Add desktop saving support,
ELPA Syncer <=
- [nongnu] elpa/workroom 5da61d48fb 14/74: Fix docstring warning, ELPA Syncer, 2022/11/27
- [nongnu] elpa/workroom cf44580a4f 31/74: Enhance IBuffer integration, ELPA Syncer, 2022/11/27
- [nongnu] elpa/workroom 5f2393c354 37/74: Update custom group for winner and auto-project-workroom modes, ELPA Syncer, 2022/11/27
- [nongnu] elpa/workroom 7b58515a1e 71/74: Don't error when project root path ends with a slash, ELPA Syncer, 2022/11/27
- [nongnu] elpa/workroom f6ef5fce4c 70/74: Bump version to 2.2.3, ELPA Syncer, 2022/11/27
- [nongnu] elpa/workroom 7b789d5e68 10/74: Fix defalias, ELPA Syncer, 2022/11/27
- [nongnu] elpa/workroom 001fe2777f 12/74: Make prompt message more clear, ELPA Syncer, 2022/11/27
- [nongnu] elpa/workroom dacdde342c 17/74: Add some hooks, ELPA Syncer, 2022/11/27
- [nongnu] elpa/workroom e1092127bd 19/74: Add hook for buffer list change, ELPA Syncer, 2022/11/27
- [nongnu] elpa/workroom d4c499d81f 23/74: Fix the creation invalid workrooms in workroom-switch, ELPA Syncer, 2022/11/27