doom-modeline 2.1.0

用了一段时间这个新的 mode-line,感觉不等宽字体其实挺好看的 :smile:
看来就是个习惯问题

换个字体用本身也无妨,问题是改变默认值会造成一堆兼容性问题。这家伙最近的commit导致了很多bug。我已经退回28了。

给上游报告一下 bug 啊。看邮件列表的讨论,好像是付出了很多的努力,才有了这个功能。

我用的 mode-line 比较简单,暂时没遇到什么 bug。

很多人已经报了,顺手修的时候又引入新的bug,无语。。。

1 个赞

方便截个图看看吗?

我用的是Emacs默认的 mode-line: 这个是 macOS 的默认字体

1 个赞

我也退回 28 了,最近 nix-community/emacs-overlay 加上了一个 emacsUnstableGcc,就是开启了 native-comp 的 emacs 28.0.90。我发现 doom 在最新的 Emacs 上根本跑不了,只能在 emacs 28 用。

1 个赞

怪不得,看来要想用得舒服还是得守旧一点 :joy:

这个已经不用了,改成了 emacsGcc ,也是指向 emacs 28.0.90

1 个赞

哦,那么 master 版本呢?

master 版本要自己 override 一下 emacsGit

:ok_hand:

Screen Shot 2021-12-15 at 15.11.48 启动过一段时间变成这样是已知的 bug 么,好像看到了 [Bug] Modeline Background gets Broken Up · Issue #486 · seagle0128/doom-modeline · GitHub

是Emacs29吗?29改了东西,不兼容了

是,我把几个face都设了貌似没问题了,再观察下

29的开发者最近在瞎改,等改完了再说吧

最新消息,他们准备先改回 monospace.

Message-ID: [email protected] To: [email protected] Subject: Variable pitch mode line From: Lars Ingebrigtsen [email protected] Date: Wed, 22 Dec 2021 14:14:22 +0100 X-Now-Playing: Daniel Brandt’s Erased Tapes: 1 + 1 = X (1): “Blackpool Sands Forever”

It’s been almost a month since it was switched to “on”, so I think it’s about time to take stock.

I think that, long term, we want to go in that direction. But we’ve uncovered some usability problems, mainly in the “how do I click those things in “U:–” anyway?” area, and we’ve got a plan to fix that, but haven’t yet.

So I think the way forward is to revert the trunk back to monospaced fonts, then fix the usability problems, and then do another test in a few months.

– (domestic pets only, the antidote for overdose, milk.) bloggy blog: http://lars.ingebrigtsen.no

谢天谢地,否则兼容性破坏很多包都要改的。等方案成熟了再merge。

已经滚回原来的样子了 :smile:
https://github.com/emacs-mirror/emacs/commit/2001ae5898a1e48cae5b138828190ac2cba39b40

(defmacro doom-modeline-def-segment (name &rest body)
  "Defines a modeline segment NAME with BODY and byte compiles it."
  (declare (indent defun) (doc-string 2))
  (let ((sym (intern (format "doom-modeline-segment--%s" name)))
        (docstring (if (stringp (car body))
                       (pop body)
                     (format "%s modeline segment" name))))
    (cond ((and (symbolp (car body))
                (not (cdr body)))
           (add-to-list 'doom-modeline-var-alist (cons name (car body)))
           `(add-to-list 'doom-modeline-var-alist (cons ',name ',(car body))))
          (t
           (add-to-list 'doom-modeline-fn-alist (cons name sym))
           `(progn
              (fset ',sym (lambda () ,docstring ,@body))
              (add-to-list 'doom-modeline-fn-alist (cons ',name ',sym))
              ,(unless (bound-and-true-p byte-compile-current-file)
                 `(let (byte-compile-warnings)
                    (byte-compile #',sym))))))))

最后那个 unless 是不是写错了?只有在当 byte-compile-current-file 为 t 时才会编译吧