防止 emacs 桌面保存保留主题元素

Cod*_*num 5 emacs

我一直在桌面保存和主题系统之间进行奇怪的交互。我在尝试设置自定义主题时注意到某些元素与主题值不匹配。诸如背景颜色或光标颜色之类的东西保留了它们以前的值。

最后,我追溯到我的.emacs.desktop文件,摘录:

;; Global section:
(setq (foreground-color . "#93a1a1") (background-color . "#002b36") 
(mouse-color . "black") (border-color . "black") (screen-gamma) (line-spacing) 
(left-fringe . 10) (right-fringe . 11) (alpha) (menu-bar-lines . 1) 
(tool-bar-lines . 0) (title) (fullscreen) (icon-type) (auto-raise) (auto-lower) 
(cursor-type . box) (scroll-bar-width . 17) (horizontal-scroll-bars . t) 
(display-type . color) (background-mode . dark) (cursor-color . "#fdf6e3")
Run Code Online (Sandbox Code Playgroud)

有没有办法让它不那样做?我喜欢保留打开文件和窗口位置的桌面功能,但我不希望它保留所有样式信息。我四处寻找并尝试设置desktop-globals-to-save和其他变量,但似乎没有任何效果。

小智 1

这个要点对我有用:

桌面加载主题.el

(desktop-save-mode)
(add-to-list 'desktop-globals-to-save 'custom-enabled-themes)
(defun desktop-load-theme () "load custom theme" (interactive)
  (dolist (th custom-enabled-themes) (load-theme th)))
(add-hook 'desktop-after-read-hook 'desktop-load-theme)
Run Code Online (Sandbox Code Playgroud)

但它不会阻止桌面保存模式将主题保存在 .desktop 文件中,而是在加载桌面后恢复主题。对我来说这是一种很好的快乐。