aboutsummaryrefslogtreecommitdiff
path: root/lisp/core/init-session.el
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/core/init-session.el')
-rw-r--r--lisp/core/init-session.el62
1 files changed, 62 insertions, 0 deletions
diff --git a/lisp/core/init-session.el b/lisp/core/init-session.el
new file mode 100644
index 0000000..d768390
--- /dev/null
+++ b/lisp/core/init-session.el
@@ -0,0 +1,62 @@
+;;; init-session.el --- Session management -*- lexical-binding: t; -*-
+
+;; Copyright (C) 2026 Richard Qin
+;; SPDX-License-Identifier: GPL-3.0-or-later
+
+;; Author: Richard Qin
+;; This file is not part of GNU Emacs.
+
+;;; Commentary:
+
+;; Preserve command history, recently opened files,
+;; and cursor positions between Emacs sessions.
+
+;;; Code:
+
+;; ------------------------------------------------------------
+;; Command history
+;; ------------------------------------------------------------
+
+(require 'savehist)
+
+(setq savehist-file
+ (expand-file-name
+ "var/savehist"
+ user-emacs-directory))
+
+(savehist-mode 1)
+
+
+;; ------------------------------------------------------------
+;; Cursor positions
+;; ------------------------------------------------------------
+
+(require 'saveplace)
+
+(setq save-place-file
+ (expand-file-name
+ "var/places"
+ user-emacs-directory))
+
+(save-place-mode 1)
+
+
+;; ------------------------------------------------------------
+;; Recent files
+;; ------------------------------------------------------------
+
+(require 'recentf)
+
+(setq recentf-save-file
+ (expand-file-name
+ "var/recentf"
+ user-emacs-directory))
+
+(setq recentf-max-saved-items 200)
+
+(recentf-mode 1)
+
+
+(provide 'init-session)
+
+;;; init-session.el ends here