求助,关于doom modeline的两个问题

学习Emacs不久,最近几天开始用doom。有两个modeline问题:

  1. 非常耗时,需要0.5s左右。不只是doom modeline的问题,就算用spaceline替换,似乎加载也是要耗时0.5s。
  2. modeline的高度问题。可能是设置了什么最小高度限制逻辑?就算设置到最小了,对13寸笔记本还是太高。
(set-face-attribute 'mode-line nil :font
		    (format   "%s :size=%d"  "MonacoB" 28))
(set-face-attribute 'mode-line-inactive nil :font
		    (format   "%s :size=%d"  "MonacoB" 28))

修改modeline的字体大小。
写在doom-modeline启动后。注意调整为自己的字体。

1 个赞

项目官网的issue也有一个方案,不过那个我试了试,效果不太好,干脆就调整字体大小了

看了几周elisp指南,还没看到face部分,对你说的配置代码不知道什么意思。设置了似乎不管用。 所以暂时把modeline插件注释了,然后添加了spaceline

(use-package spaceline
  :config
  (defvar my-spaceline-on t)
  (defun my-load-modeline ()
    (when my-spaceline-on
        (spaceline-spacemacs-theme)
        (setq my-spaceline-on nil)))
  (add-hook 'find-file-hook #'my-load-modeline)
  (run-with-idle-timer 3 0 #'my-load-modeline))
  1. 添加个hook,打开文件的时候才开启spaceline配置
  2. 延时3秒加载配置。

目前看是对初始启动时间没影响,就是第一次打开文件的时候慢半秒。

你直接在 use-package 的 config 中加入提到的字体设置的几行就可以了(字体那里要改成自己的,另外:size 前面我这不能有空格):

(use-package doom-modeline
  :ensure t
  :hook (after-init . doom-modeline-mode)
  :config
  (set-face-attribute 'mode-line nil :font
                      (format   "%s:size=%d"  "Source Code Pro" 12))
  (set-face-attribute 'mode-line-inactive nil :font
                      (format   "%s:size=%d"  "Source Code Pro" 12))

  (setq inhibit-compacting-font-caches t
        doom-modeline-buffer-file-name-style 'auto
        doom-modeline-buffer-encoding nil))

update: 如果通过 fontset 的方式为中文单独设置了字体大小,为了保证 modeline 高度始终一致,可以考虑新建一个 fontset

(use-package doom-modeline
  :ensure t
  :hook (emacs-startup . doom-modeline-mode)
  :config
  (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")
  (setq inhibit-compacting-font-caches t
        doom-modeline-height 1
        doom-modeline-buffer-file-name-style 'auto
        doom-modeline-icon nil
        doom-modeline-project-detection 'project))
3 个赞

再加上这几行,差不多可以用了。感谢 :smile:

(setq doom-modeline-height 1)
(set-face-attribute 'mode-line nil :height 100)
(set-face-attribute 'mode-line-inactive nil :height 100)

按照上面設置反復試驗了幾次,都是字體大小不一致,問題出在哪裏?