doom-modeline 2.1.0

观察下两边的icon有什么不同,看看有没有哪个字符或者icon大一些。还有一个解决方案是设置 doom-modeline-height,调大一些试试看。

把doom-modeline-height设置成30,两个一样高了。

如果把上面的字体设置注释掉,modeline的高度是一样的。icon的大小和字体的大小是有什么关系吗?不是很了解。

为了保持字体完整,mode-line高度取这两个高度最大值:bar 高度(也就是doom-modeline-height),字体高度(图标也属于unicode字符)。所以建议doom-modeline-height 设置稍微大点,至少比字体高度大一些,会更美观些。

半人马大佬,mode-line高度好像不能低于25,我设置了 doom-modeline-height 20 15 10all-the-icons缩小 (setq all-the-icons-scale-factor 1.0),都不能减小mode-line高度,看着还有很多空间可减小。还有什么办法吗?

高度最小值是字体的高度,不用icon的话会减小高度。

我记得当时看 readme 的方法不行,然后自己折腾的


  (defun smaller-modeline ()
    "Make doom-modeline smaller."
    (when window-system
      (create-fontset-from-ascii-font "Source Code Pro:medium" nil "modeline")
      (set-face-attribute 'mode-line nil
                          :height 120 :fontset "fontset-modeline")
      (set-face-attribute 'mode-line-inactive nil
                          :height 120 :fontset "fontset-modeline"))))

推荐使用 spaceline,看起来效果不错,关键是高度比这个低很多。我一开始用的就是这个,后面因为高度原因切换过去了。

@seagle0128 @Voleking 谢谢两位大佬!总结就是单独对mode-linde和mode-line-inactive设置字体大小即可进一步压缩doom-modeline-height

1、请问 @seagle0128 大佬,doom-modeline以后会支持切换到header-line吗?目前这点做的比较好的是 nano-modeline,好像doom-emacs也设置了一个modeline switch header line的todo。

2、请问 @Voleking 大佬, (create-fontset-from-ascii-font "Source Code Pro:medium" nil "modeline")是单独给modeline设置一个字体集的意思吗?我把它和:fontset "fontset-modeline"注释掉也可以。另外,face attributes 里有个 :font 选项也是可以单独设置mode-line字体的,这两种设置字体的方式之间有什么区别呢?

哈哈,我也是,不过昨晚刚好折腾mode-line,就顺便弄弄doom-modeline。现在可以愉快地用doom-modeline了 :grin: 经过上面两位大佬解答,发现进一步压缩高度也是很简单的,改一改:height 即可:

(set-face-attribute 'mode-line nil
                    :height 140)
(set-face-attribute 'mode-line-inactive nil
                    :height 140)

另外,不知道all-the-icon大小有没有影响doom-modeline-height,但可以这样进行缩小:(setq all-the-icons-scale-factor 1.0)

直接设置 header-line-format就可以,不过很多包也用headerline,会有冲突。本质上doom-modeline就是设置 mode-line-format.

会影响。默认设置为25也是为了适配icon

是不是有个Nerd符号集也能提供类似all-the-icon的符号?doom-modeline可以用这个Nerd吗?

不支持哈,nerd缺少很多图标,你可以看看 nerd-icons.

问一下大佬,doom-mode-line是否只能选择等宽字体, 我给mode-line配置verdana字体导致信息显示不全

image

用consolas是好的

image

等宽字体也是可以的。只是字体大小得调整下。另外,如果内容太多也会溢出的。

最近 Emacs 29 上开启了 proportional modeline 的测试

导致现在 doom-modeline 看起来右边缺了一点

自己设置下mode-line的字体就可以解决了

比如:

(with-eval-after-load 'doom-modeline
      (set-face-attribute 'mode-line nil :font "Menlo-12")
      (set-face-attribute 'mode-line-inactive nil :font "Menlo-12"))

眼残,我都看不出来字体已经变成非 mono 的了 :roll_eyes:

在正文里可以通过 C-u C-x = 来判断用的是哪个字体?在 modeline 上是如何确定的呢?

默认和default字体是一样的,我看了下代码,最新的 mode-line face继承了 variable-pitch,脑残的想法,不知道为啥。这样会破坏很多地方,除非已经有完善的解决方案。非等宽字体无法精确计算字符宽度。

1 个赞

我这里还要设置下 mode-line-active 才行,不然还是继承的 variable-pitch :hot_face: