分析很细致。我还没来得及看最近的变化,推测29里byte-compile做了修改。等29稳定下来再看看吧
(等等,我还没分析完…
分析完成了!
doom-modeline右边显示不全,这是窗口最大化之后,最右边的截图,最右好像是个错误数量,只显示了一点点。
- win10
- “GNU Emacs 28.0.50 (build 1, x86_64-w64-mingw32)”
- doom-modeline-20220325.554
跟字体和大小有关,图标计算没办法很精确
和keycast-mode好像配合的不是很好……
我的配置文件:
(use-package doom-modeline
:diminish doom-modeline-mode
:config
(setq doom-modeline-modal-icon nil)
;; Must use mono font here
(set-face-attribute 'mode-line nil :font "Jetbrains Mono NL" :height 140 :weight 'semi-bold)
(set-face-attribute 'mode-line-inactive nil :font "Jetbrains Mono NL" :height 140 :weight 'semi-bold)
:hook (after-init . doom-modeline-mode))
(use-package keycast
:after doom-modeline
:commands keycast-mode
:config
(define-minor-mode keycast-mode
"Show current command and its key binding in the mode line."
:global t
(if keycast-mode
(progn
(add-hook 'pre-command-hook 'keycast--update t)
(add-to-list 'global-mode-string '("" keycast-mode-line " ")))
(remove-hook 'pre-command-hook 'keycast--update)
(setq global-mode-string (remove '("" keycast-mode-line " ") global-mode-string))))
(keycast-mode)
)
麻烦帮忙看看哪里有问题?
没看懂你想表达什么
modeline最右侧无法显示全
换其他字体或者缩小字体。图标显示太多无法精确计算
@seagle0128 能否把 all-the-icon改为可选依赖呢?我在teminal和gui都不用任何图标,不太想安装这个依赖项。我看在 Fix #149 中你revert了之前的commit是出于什么考量呢?
(setq doom-modeline-icon 1)
fails and hangs emacs daemon · Issue #149 · seagle0128/doom-modeline (github.com) issue中有详细描述。
理论上是可以去掉all-the-icons的,但改动相当多,很多情况需要考虑。另外,其实icons在terminal下也是能用的,只是很多terminal配置不方便。
好的。我有点强迫症啦。。我去看一下
今天我更新了下,把 all-the-icons
包变成optional的。帮忙测试下有没有问题?
好!我已经安全移除了all-the-icons !不过我好像发现了一些modeline的face没有随着frame-focus而update,我用的是“29.0.50”。
minimal config:
(load-theme 'wombat)
(use-package doom-modeline
:hook (after-init-hook . doom-modeline-mode)
:init
(setq doom-modeline-icon nil
doom-modeline-bar-width 0
doom-modeline-height 15
doom-modeline-persp-name nil
doom-modeline-irc nil
doom-modeline-minor-modes nil
doom-modeline-enable-word-count nil
doom-modeline-buffer-encoding nil
doom-modeline-checker-simple-format nil
doom-modeline-indent-info nil
doom-modeline-env-load-string "..."
doom-modeline-vcs-max-length 20
doom-modeline-window-width-limit (+ fill-column 20)
doom-modeline-buffer-file-name-style 'truncate-with-project))
去掉all-the-icons 没有影响了吗?如果是用deamon启动,然后在GUI下开client 是什么效果?再手动安装all-the-icons 然后 enable doom-modelin-icon又是什么效果呢?
不过我好像发现了一些modeline的face没有随着frame-focus而update,我用的是“29.0.50”。
这个问题是 29 修改造成的,暂时不会处理。29还不稳定,内部机制还会变动。我认为是瞎搞,不考虑兼容性没有意义的修改。
我一直是用的damon,不用icon的话没区别。 如果安装了all-the-icons,并且enable doom-modeline-icon的话,tui依然是不变的,但是一旦新建了gui的frame,gui会自动使用icon,再切换回tui时,tui也会同步的显示icon,如果不装nerd-font的话,tui的icon会显示乱码。 damon模式下,不同的frame好像是要共用modeline的。我反正都不用icon,目前看没什么问题。
thx!这样看起来就没问题了。
@seagle0128 今天尝试了一下,在不装 all-the-icons
的情况下滚动卡顿很严重,emacs -Q环境也测试过了,inhibit-compacting-font-caches
也开了,必须同时设置 (setq doom-modeline-icon nil)
关掉图标才好。这是设计行为还是出bug了?
我本地测试正常呢,没有卡顿。看看这几个情况:
- 升级到最新版后用emacs -Q重启;
- 查看message和error
- 做profiling: https://www.gnu.org/software/emacs/manual/html_node/elisp/Profiling.html
Windows 10 Emacs 28.1 今天又用emacs -Q测试了一次,还是一样的结果 profiling之前也做过,结果
在自己编译的Emacs 29里面也试过,还是一样的结果