Emacs 28.2 发布了!

可能我的第三方包比较少,目前还没有出现问题

四舍五入一下就是什么都没改

* Changes in Specialized Modes and Packages in Emacs 28.2

** The command 'kdb-macro-redisplay' was renamed to 'kmacro-redisplay'.
This is to fix an embarrassing typo in the original name.

** 'desktop-save-mode' now saves the desktop in 'save-buffers-kill-emacs'.
Previously, the desktop was saved in 'kill-emacs' via
'kill-emacs-hook'.  However, that violated the convention that
functions in 'kill-emacs-hook' cannot interact with the user, and in
particular didn't play well with ending daemon sessions of Emacs.  So
we moved the saving of the desktop to 'save-buffers-kill-emacs', via
'kill-emacs-query-functions'.  To make sure the desktop is saved,
terminate Emacs with 'save-buffers-kill-emacs', not with 'kill-emacs'.

(This change was done in Emacs 28.1, but we didn't announce it in NEWS
back then.)

@seagle0128 现在最新的 29.0.50 已经不会有这些警告了。除了 Package autoload is deprecated,不过这个应该由第三方包去修复。

有时间再试试,谢谢!

我用大佬的 doom-modeline, Emacs-29.1-rc1 一直给我报

Warning: setting attribute ‘:background’ of face ‘doom-modeline-bar-inactive’: nil value is invalid, use ‘unspecified’ instead.

算了, 我滚回去用 28.2 咯.


是这样的.

1 个赞

29.x 给的告警,你是不是用了doom-themes,给他报bug

是, 这个好像是我安装 doom-modeline 时自动下载的.

嗯…我没搞懂这和 doom-themes 有啥关系, 而且就算有关系, 我因为一个来自其它 package 的 face 报警 而给 doom-themes 报 bug, 会不会有点不太合适

  1. doom-themes不会自动跟随doom-modleine安装。
  2. doom-themes或者其他类似的主题会修改doom-modeline的默认face,导致这个问题发生。
  3. 最好用emacs -Q来确认,或者删除doom-themes或者换其他主题。

抱歉, 应该是我记忆混乱了.

我把除了原生的 theme 都删了, custom-enabled-themes 也置为了 nil, 还是有这个 warning. 看来得慢慢裁剪 init 文件排查错误了…

emacs -Q 排查

我焯, 终于找到复现的方法了, 这玩意得开 daemon 才能复现, 鬼知道我尝试了多久.


除了 elpa/ 目录下必要的 package 外,

我的 init.el:

;;; -*- lexical-binding: t; -*-
(setq server-auth-dir "~/tmp/")
(setq server-name "server")
(custom-set-variables
 '(doom-modeline-mode t))

early-init.el.

启动 Emacs-29.1-rc1:

C:\Users\shynur\bin\emacs-29.1-rc1\bin\emacsclientw.exe --server-file=c:/Users/shynur/tmp/server --alternate-editor="" --create-frame
1 个赞

查看下 doom-modeline-bar-inactive face 和 (face-foreground 'mode-line-inactive)的值。

按照我提到的步骤启动的话,

全部是 unspecified;

"grey20".


另外刚刚发现, 创建好 daemon 之后, 每次用

C:\Users\shynur\bin\emacs-29.1-rc1\bin\emacsclientw.exe --server-file=c:/Users/shynur/tmp/server --alternate-editor="" --create-frame

新打开一个 frame 时, 都会报一次那个 warning.

我是新开了个 Windows 11 虚拟机测试的. 在我本地上, 这个 warning 会持续报.

1 个赞

更新doom-modeline试试。

1 个赞

本地试了一下, 没看到 warning. 感谢!

最后怎么解决的呀?

试试这个:

;; Bugfix
;;--------------------------------------------------------------------
;;; doom-one theme: ;; Warning: setting attribute ‘:background’ of face ‘font-lock-comment-face’: nil value is invalid, use ‘unspecified’ instead.

在你所使用的 doom-theme 文件中:

(modeline-fg fg) -改为->

(modeline-fg 'unspecified)


:background (if doom-one-brighter-comments (doom-lighten bg 0.05)) -改为->\

:background (if doom-one-brighter-comments
                 (doom-lighten bg 0.05)
               'unspecified)
1 个赞

用的 v29.1, 啥配置都没改, 只是更新了一下 doom-modeline 就好了.

我是小白,请问是如何更新doom-modeline 的呀

我想问下具体的文件路径在哪里呀 :face_with_peeking_eye: