观察下两边的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 10
和 all-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了 经过上面两位大佬解答,发现进一步压缩高度也是很简单的,改一改: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吗?
问一下大佬,doom-mode-line是否只能选择等宽字体, 我给mode-line配置verdana字体导致信息显示不全
用consolas是好的
等宽字体也是可以的。只是字体大小得调整下。另外,如果内容太多也会溢出的。
自己设置下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 的了
在正文里可以通过 C-u C-x =
来判断用的是哪个字体?在 modeline 上是如何确定的呢?
默认和default字体是一样的,我看了下代码,最新的 mode-line face继承了 variable-pitch,脑残的想法,不知道为啥。这样会破坏很多地方,除非已经有完善的解决方案。非等宽字体无法精确计算字符宽度。
我这里还要设置下 mode-line-active
才行,不然还是继承的 variable-pitch