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

防止 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")

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

答案1

只需点击此按钮。您需要更新frameset-filter-alist您不想保存的内容。例如:

(push '(foreground-color . :never) frameset-filter-alist)
(push '(background-color . :never) frameset-filter-alist)
(push '(font . :never) frameset-filter-alist)
(push '(cursor-color . :never) frameset-filter-alist)
(push '(background-mode . :never) frameset-filter-alist)
(push '(ns-appearance . :never) frameset-filter-alist)
(push '(background-mode . :never) frameset-filter-alist)

答案2

这个要点对我有用:

桌面加载主题.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)

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

答案3

打开.desktop文件,颜色主题配置保存在框架字段中,这可以通过设置desktop-restore-frames为来避免nil

有关详细信息,请参阅desktop-restore-frames文档:

当非零时,保存并恢复框架和窗口配置。

完整配置:

(custom-set-variables
 '(desktop-save t)
 '(desktop-restore-frames nil)
 '(desktop-path (list "~/.emacs.d/"))
 '(desktop-dirname "~/.emacs.d/"))
(desktop-save-mode 1)

相关内容